【发布时间】:2015-05-24 05:20:16
【问题描述】:
我知道这可能是个愚蠢的问题,但是......
简单地说,我有一个应用程序,其数据库包含数百条处于开发模式的记录。当我推送到生产环境并部署到 Internet 上时,我是否会丢失我的数据库并且必须在生产模式下重做这一切?
只是为了安全!
【问题讨论】:
标签: ruby-on-rails ruby database development-environment production-environment
我知道这可能是个愚蠢的问题,但是......
简单地说,我有一个应用程序,其数据库包含数百条处于开发模式的记录。当我推送到生产环境并部署到 Internet 上时,我是否会丢失我的数据库并且必须在生产模式下重做这一切?
只是为了安全!
【问题讨论】:
标签: ruby-on-rails ruby database development-environment production-environment
您不会丢失数据本身,这些数据存储在您为开发环境配置的数据库中,但您的生产环境可能会配置另一个数据库,该数据库将为空。
您可以从开发环境中复制数据库并配置 Rails 以在生产环境中使用它。取决于您使用哪种数据库:mysql、sqlite 等。
【讨论】:
您的生产数据库未推送。当您在生产服务器上运行 rake exec db:migrate 时,将创建一个包含您的架构的空数据库。
如果您想自动将开发数据库记录添加到生产数据库,可以使用名为 yaml_db 的 gem。它易于使用并且适用于 MySQL 和 PostgreSQl。 https://github.com/yamldb/yaml_db。
在gemfile中:
gem 'yaml_db'
然后,在您的控制台中
$ bundle install
rake db:data:dump -> Dump contents of Rails database to db/data.yml
rake db:data:load -> Load contents of db/data.yml into the database
查看规范了解所有详细信息。
已编辑:添加
RAILS_ENV=development bundle exec rake db:data:dump
RAILS_ENV=production bundle exec rake db:data:load
【讨论】: