manage.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import sys
  2. import getpass
  3. from nova import app, db
  4. from nova.models import User
  5. from flask_script import Manager, Command, Option
  6. from flask_migrate import MigrateCommand
  7. class InitDatabaseCommand(Command):
  8. option_list = (
  9. Option('--name', dest='name', required=True),
  10. Option('--fullname', dest='fullname', required=True),
  11. Option('--email', dest='email', required=True),
  12. )
  13. def run(self, name, fullname, email):
  14. password = getpass.getpass("Password: ")
  15. repeated_password = getpass.getpass("Repeat password: ")
  16. if password != repeated_password:
  17. sys.exit("Passwords not matching.")
  18. db.create_all()
  19. admin = User(name=name, fullname=fullname, email=email, is_admin=True, password=password)
  20. db.session.add(admin)
  21. db.session.commit()
  22. admin.generate_token()
  23. manager = Manager(app)
  24. manager.add_command('initdb', InitDatabaseCommand)
  25. manager.add_command('db', MigrateCommand)
  26. if __name__ == '__main__':
  27. manager.run()