为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建单独的文件以生成不同的数据库 Flask-SqlAlchemy 表?

如何创建单独的文件以生成不同的数据库 Flask-SqlAlchemy 表?

海绵宝宝撒 2021-10-26 17:06:47
我使用 Flask-Restplus 和 SqlAlchemy 创建我的表和 Api。我面临的问题如下:起初我有这个user.py里面有2张桌子:用户名class User(db.Model):    __tablename__ = "users_info"    id = db.Column(db.Integer, primary_key=True, autoincrement=True)    name = db.Column(db.Integer, unique=True, nullable=True)    device = db.relationship('Device', backref='user')    # .. some other field hereclass Device(db.Model):    __tablename__ = "user_device"    device_id = db.Column(db.Integer, primary_key=True, autoincrement=True)    id = db.Column(db.Integer, db.ForeignKey(User.id))    # .. some other field here此时,我使用下面的这 2 个命令manage.py来创建数据库,并且没有问题。python manage.py db migratepython manage.py db upgrade管理文件import osimport unittestfrom flask_migrate import Migrate, MigrateCommandfrom flask_script import Managerfrom app import blueprintfrom app.main import create_app, dbapp = create_app(os.getenv('My_App') or 'dev')app.register_blueprint(blueprint)app.app_context().push()manager = Manager(app)migrate = Migrate(app, db)manager.add_command('db', MigrateCommand)@manager.commanddef run():    app.run()if __name__ == '__main__':    manager.run()现在我想创建另一个名为 的文件product.py,它是同一个数据库的新表,如下所示:产品.pyfrom .. import dbfrom .model.user import Userclass Product(db.Model):    __tablename__ = "product"    product_id = db.Column(db.Integer, primary_key=True, autoincrement=True)    product_name = db.Column(db.String)    # plan here what you want in this table    user_id = db.Column(db.Integer, db.ForeignKey(User.user_id))如您所见,ProductclassUser与foreignKey.结果:但是我使用上面相同的命令再次迁移,结果如下所示:INFO  [alembic.runtime.migration] Context impl SQLiteImpl.INFO  [alembic.runtime.migration] Will assume non-transactional DDL.INFO  [alembic.env] No changes in schema detected.似乎没有从我的新文件中检测到新表。我的问题:如何创建单独的文件以生成不同的数据库表?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 256 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号