Я хочу динамически добавлять столбцы в таблицу в моей базе данных, поскольку мне не нужно указывать все столбцы при настройке в классе
Я скачал flask Перенос, который я получил работать с db.model, но я бы хотел, чтобы он работал напрямую с декларативной базой. Как мне это сделать?
Вот как я настраиваю его с помощью db.model
app = Flask(__name__, static_folder = "static", template_folder = "templates/vue_template")
app.config['SQLALCHEMY_DATABASE_URI'] = "postgresql+psycopg2://user:password@localhost:5432/testdb"
db =SQLAlchemy(app)
class Person(db.Model):
id=db.Column(db.Integer, primary_key=True)
name=db.Column(db.String(80))
username=db.Column(db.String(80))
migrate = Migrate(app,db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == '__main__':
manager.run()
Затем я запускаю следующие команды в терминале
python test.py db init
python test.py db migrate -m "Initial migration."
python test.py db upgrade
Если Затем я добавляю новый столбец email = db.Column(db.String(120))
в таблицу Person и запускаю
python test.py db migrate -m "Add column"
python test.py db upgrade
. Затем я вижу новый столбец в таблице Person в базе данных. Отлично.
Вопрос
Но как мне сделать ту же процедуру добавления столбца с таблицей на основе Declarative_base (как показано ниже)
Т.е. добавление столбца email = Column(String)
к Таблица ниже с использованием flask -migrate
class Person(Base):
__tablename__ = "person"
id = Column(Integer, primary_key=True)
name=Column(String)
username=Column(String)
Что мне нужно изменить в коде, чтобы это работало?
Спасибо