我使用 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.似乎沒有從我的新文件中檢測到新表。我的問題:如何創建單獨的文件以生成不同的數據庫表?
添加回答
舉報
0/150
提交
取消