Ruby on rails Rails,在Git push上重置数据库
更新:我的生产数据库实际上也设置为sqlite。然而,这并不能解释擦拭 原件: 我目前正密切关注迈克尔·哈特尔的研究,几乎到了不折不扣的地步。唯一的区别是我使用OpenShift部署我的应用程序,带有PostgreSQL盒带。不幸的是,每次我推到openshift时,服务器都会重新启动我的应用程序(正常),数据库也会被删除(我想不是正常的吧?)。然后我必须重新运行所有迁移,并再次填充数据库。我还注意到,如果我从OpenShift中执行拉操作,那么我的本地数据库(我的计算机上的sqlite)也会被擦除 这是我的档案:Ruby on rails Rails,在Git push上重置数据库,ruby-on-rails,ruby,git,openshift,Ruby On Rails,Ruby,Git,Openshift,更新:我的生产数据库实际上也设置为sqlite。然而,这并不能解释擦拭 原件: 我目前正密切关注迈克尔·哈特尔的研究,几乎到了不折不扣的地步。唯一的区别是我使用OpenShift部署我的应用程序,带有PostgreSQL盒带。不幸的是,每次我推到openshift时,服务器都会重新启动我的应用程序(正常),数据库也会被删除(我想不是正常的吧?)。然后我必须重新运行所有迁移,并再次填充数据库。我还注意到,如果我从OpenShift中执行拉操作,那么我的本地数据库(我的计算机上的sqlite)也会被
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0.rc1'
gem 'bcrypt', '3.1.7'
gem 'bootstrap-sass', '3.2.0.0'
gem 'sass-rails', '~> 5.0.0.beta1'
gem 'uglifier', '>= 2.5.3'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails', '4.0.0.beta2'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '~> 2.2.3'
gem 'sdoc', '~> 0.4.0', group: :doc
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'debugger'
gem 'web-console', '~> 2.0'
gem 'spring', '1.1.3'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor', '0.0.2'
gem 'unicorn', '4.8.3'
end
这是我的.gitignore:
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*
!/log/.keep
/tmp
这是我的数据库。yml:
default: &default
adapter: sqlite3
pool: 5
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3
default:&default
适配器:sqlite3
游泳池:5
超时:5000
发展:
听起来您的应用程序使用的是sqlite数据库而不是postgresql数据库,请仔细检查您的数据库配置。还要确保迁移中没有任何代码会清除并重新创建数据库(如“测试”设置)。是否可以发布数据库yml文件的“净化”版本
每次git推送应用程序时,它都会清除sqlite数据库的存储位置。如果要使用sqlite,需要将其存储在OPENSHIFT_DATA_DIR中,但我们建议改用mysql或postgres,以便应用程序可以根据需要进行缩放。好的,它实际上是在生产中使用sqlite(请参阅更新).但是既然.sqlite3文件被git忽略了,为什么它会被删除呢?我刚刚意识到我最近一直在搞乱git分支;也许production.sqlite3已经连续几次被空上传,我只是没有意识到下次不会出现这种情况。我会重试,很可能很快就会接受你的答案。每次你git推送你的应用程序时如果你想使用sqlite,你需要将它存储在你的OPENSHIFT_DATA_DIR中,但我们建议你改用mysql或postgres,这样你的应用程序就可以根据你的需要进行缩放。事实上,我猜它已经被删除了。如果你在回答中添加最后一条评论,我会接受。谢谢!