48 lines
987 B
Python
Executable File
48 lines
987 B
Python
Executable File
#!/usr/bin/env python
|
|
from flask.ext.script import Manager
|
|
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()
|