From 6a38d62d47b974d9c958f47609d4ea7af808ccbd Mon Sep 17 00:00:00 2001 From: Alexis Lahouze Date: Sat, 2 Jan 2016 10:13:26 +0100 Subject: [PATCH] Add database initialization in manage.py. --- manage.py | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/manage.py b/manage.py index b2ebf81..2f60926 100755 --- a/manage.py +++ b/manage.py @@ -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()