更新:我的生产数据库实际上也设置为sqlite。然而,它没有解释擦拭......?
原件:
我现在正在跟随迈克尔·哈特尔Rail tutorial,几乎到了这封信。唯一的区别是我使用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
这是我的database.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
在此先感谢您的帮助,欢迎提出所有建议!
答案 0 :(得分:0)
听起来您的应用程序正在使用sqlite数据库而不是postgresql数据库,请仔细检查您的数据库配置。另外,请确保您没有任何代码可以删除并重新创建数据库(例如“test”设置“)。也许发布数据库yml文件的”已清理“版本?
每当你git推送你的应用程序时,它会清除你的sqlite数据库存储的位置。如果你想使用sqlite,你需要将它存储在你的OPENSHIFT_DATA_DIR中,但我们建议使用mysql或postgres,这样你的应用程序可以根据需要进行缩放。