Add database initialization in manage.py.
This commit is contained in:
parent
134eaf6f0b
commit
80a1e85db2
35
manage.py
35
manage.py
@ -1,14 +1,47 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
from flask.ext.script import Manager
|
from flask.ext.script import Manager
|
||||||
from flask.ext.migrate import Migrate, MigrateCommand
|
from flask.ext.migrate import Migrate, MigrateCommand, stamp
|
||||||
|
|
||||||
from accountant import app, db
|
from accountant import app, db
|
||||||
|
|
||||||
|
from accountant.api.models.users import User
|
||||||
|
|
||||||
manager = Manager(app)
|
manager = Manager(app)
|
||||||
|
|
||||||
migrate = Migrate(app, db)
|
migrate = Migrate(app, db)
|
||||||
|
|
||||||
manager.add_command('db', MigrateCommand)
|
manager.add_command('db', MigrateCommand)
|
||||||
|
|
||||||
|
|
||||||
|
@manager.command
|
||||||
|
def initdb():
|
||||||
|
""" Create the database ans stamp it. """
|
||||||
|
|
||||||
|
tables = db.engine.table_names()
|
||||||
|
|
||||||
|
if len(tables) > 1 and 'alembic_version' not in tables:
|
||||||
|
exit("Database already initialized.")
|
||||||
|
|
||||||
|
db.metadata.create_all(bind=db.engine)
|
||||||
|
stamp()
|
||||||
|
print("Database created.")
|
||||||
|
|
||||||
|
user_manager = Manager(usage="Manage users.")
|
||||||
|
|
||||||
|
manager.add_command('user', user_manager)
|
||||||
|
|
||||||
|
|
||||||
|
@user_manager.command
|
||||||
|
def add(email, password):
|
||||||
|
""" Add a new user. """
|
||||||
|
user = User()
|
||||||
|
user.email = email
|
||||||
|
user.password = User.hash_password(password)
|
||||||
|
|
||||||
|
db.session.add(user)
|
||||||
|
|
||||||
|
print("User '%s' successfully added." % email)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
manager.run()
|
manager.run()
|
||||||
|
Loading…
Reference in New Issue
Block a user