12345678910111213141516171819202122232425262728293031323334353637 |
- import sys
- import getpass
- from nova import app, db
- from nova.models import User
- from flask_script import Manager, Command, Option
- from flask_migrate import MigrateCommand
- class InitDatabaseCommand(Command):
- option_list = (
- Option('--name', dest='name', required=True),
- Option('--fullname', dest='fullname', required=True),
- Option('--email', dest='email', required=True),
- )
- def run(self, name, fullname, email):
- password = getpass.getpass("Password: ")
- repeated_password = getpass.getpass("Repeat password: ")
- if password != repeated_password:
- sys.exit("Passwords not matching.")
- db.create_all()
- admin = User(name=name, fullname=fullname, email=email, is_admin=True, password=password)
- db.session.add(admin)
- db.session.commit()
- admin.generate_token()
- manager = Manager(app)
- manager.add_command('initdb', InitDatabaseCommand)
- manager.add_command('db', MigrateCommand)
- if __name__ == '__main__':
- manager.run()
|