Add database initialization in manage.py.

This commit is contained in:
Alexis Lahouze 2016-01-02 10:13:26 +01:00
parent 134eaf6f0b
commit 80a1e85db2
1 changed files with 34 additions and 1 deletions

View File

@ -1,14 +1,47 @@
#!/usr/bin/env python
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.api.models.users import User
manager = Manager(app)
migrate = Migrate(app, db)
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__":
manager.run()