【发布时间】:2019-01-28 14:22:13
【问题描述】:
我最近在一个新工作区中设置了 postgresql。我按照通常的方式设置它。或者至少我认为我做到了。但是后来我得到了这个错误
Failure/Error: ActiveRecord::Migration.maintain_test_schema!
ActiveRecord::NoDatabaseError:
FATAL: database "app_test" does not exist
仅当我更改为分支并运行 rspec 时才会发生这种情况。到目前为止,我只是在每次在分支之间切换时都在创建数据库并运行迁移作为解决方案。
它不会影响开发数据库。只要我留在那个分支上,我就不必再次添加测试数据库。但是如果我因为任何原因不得不离开它,我将不得不重新添加数据库。
它似乎会影响任何不是主分支的分支。而这只发生在本地。我正在使用 Cloud 9,我的应用是 Rails 应用。我应该卸载并重新安装 postgresql,然后重新设置吗?
最近我不得不同时在几个分支机构工作,所以这变得很麻烦。我很想创建一个新的工作区。
这是我的 database.yml(当然,有些东西是隐藏的,app 是我应用名称的替代)。
default: &default
adapter: postgresql
encoding: unicode
host: localhost
username: postgres
password: secret
pool: 5
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
提前谢谢你
【问题讨论】:
-
如果你在切换分支后运行
rake db:test:prepare,但在运行rspec之前运行,是否有效? -
它给了我一个错误
Caused by: PG::InvalidParameterValue: ERROR: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII) HINT: Use the same encoding as in the template database, or use template0 as template.
标签: ruby-on-rails database postgresql cloud9