我正在将一个Python Flask Web应用程序从Heroku迁移到Railway。该应用程序使用一组Flask CLI命令来初始化和更新Postgres数据库模式。
例如,在开发环境中,我会运行“flask db migrate”,以便创建要复制到其他位置的数据库模型。
为了将模型复制到过渡或生产环境中,我需要在过渡/生产应用程序上运行命令“flask db upgrade”。Heroku的CLI“run”命令允许您通过运行以下命令在没有SSH的情况下执行此操作:
heroku run flask db upgrade --app NAME-OF-STAGING/PRODUCTION-APP
据我所知,Railway的CLI运行命令不允许您选择一个在线环境来以同样的方式运行命令,也不允许SSH访问。
有没有办法在Railway live应用程序上运行CLI命令或Python文件,这样我就可以运行Flask-migrate的“数据库升级”并让我的Postgres数据库正常工作?
1条答案
按热度按时间watbbzwu1#
如果你还在寻找答案,我是这么做的:我没有使用flask migrate,而是将数据库下载为CSV文件,并创建了自己的迁移脚本。该脚本逐行读取CSV文件,并将数据添加到新数据库(您需要删除旧数据库)。我从www.example.com调用了该脚本main.py,然后在数据库迁移后删除了该脚本。这绝对不是最好的方法。特别是当DB中有大量数据时,但这是一个很好的解决方法。