随着我的应用程序不断发展,我需要一种方法在OpenShift中将架构更改推送到DB而不会丢失现有数据。我的application使用Node.js和PostgreSQL,因此我想使用node-migrate来管理增量架构更改。问题是node-migrate使用文件migrations/.migrate
,每次推送到OpenShift时都会删除该文件migrations
(git push
文件夹也包含迁移脚本,并存储在Git仓库中。)
您知道如何配置node-migrate以正确使用OpenShift吗?
OR
如果您不了解节点迁移但了解OpenShift,那么应用程序在部署期间可以写入的正确文件位置是什么?{{1}}期间文件未被删除?
答案 0 :(得分:1)
我对节点迁移不是很熟悉,但$OPENSHIFT_DATA_DIR
(〜/ app-root / data)是你可以写的地方,它不会被git删除推。
答案 1 :(得分:1)
您的应用应该自行处理数据库架构更改,它不是Openshift的功能。
例如,django有一个更新新表的命令(syncdb),但尚未修改现有模式。对于django,我已经绑定了动作钩子脚本,允许我在每次部署时运行sync db命令。它们只是标准的shell脚本,每当您推送代码时都会执行它们。还有其他动作挂钩,这些只是我所知道的。
HTH