0

我有一个使用 Rails 3.2 中的开发环境创建和填充的数据库。我使用 git 和 phusion 乘客将数据库部署到服务器上。目前,服务器仍在运行开发数据库,​​因为它是已填充的数据库。我有两个问题:

1)如果我将服务器切换到生产环境,我的所有数据都会传输过来吗?如果没有,如何将当前数据传输到生产数据库?

2)如果我使用开发数据库从我的个人机器推送更新到服务器,并且服务器正在使用生产数据库,那么用户输入到生产数据库的所有数据都会保持完整吗?或者当我将项目从 git 拉到服务器时,我是否必须将其配置为不擦除数据?

4

2 回答 2

2

对于第一个问题

如果您将环境更改为生产环境,它将使用config/database.yml文件中配置的数据库。如果您想在生产中使用相同的数据库,您可以备份开发数据库并导入备份文件。

对于第二个问题

通过术语从我的个人计算机向服务器推送更新,我假设您正在谈论正在推送的代码更改,而不是任何与数据库相关的事情。使用 git 进行拉/推操作永远不会影响您与数据库交互的方式。生产数据库中用户的数据将保持不变。

于 2014-02-18T16:56:39.663 回答
0

1)如果我将服务器切换到生产环境,我的所有数据都会传输过来吗?如果没有,如何将当前数据传输到生产数据库?

默认情况下通常不会。database.yml 文件有一个用于开发、测试和生产的组。开发和测试往往是本地的,生产(希望)不会在你的本地机器上。

2)如果我使用开发数据库从我的个人机器推送更新到服务器,并且服务器正在使用生产数据库,那么用户输入到生产数据库的所有数据都会保持完整吗?或者当我将项目从 git 拉到服务器时,我是否必须将其配置为不擦除数据?

实际数据应该保持完整,但是,请记住使您的迁移与那里的数据兼容。这里要注意的一件大事是在现有表中添加一个必填字段,而无需处理重新填充早期记录。这将破坏您的部署。

您可以使用环境的资源从生产中获取数据库/将其发送回(我认为 Heroku 使用pg:dump)。

写下您对 GhostRider 回答的评论,您是否在开发中远程使用生产数据库?/您的部署在哪里?您的 database.yml 文件是什么样的?(请记住不要包含您的密码:D,我会在回复时更新答案)。

于 2014-02-18T17:14:55.827 回答