为什么我不能在测试数据库上运行迁移?

时间:2018-07-22 13:37:53

标签: ruby-on-rails postgresql database-migration

我正在尝试在测试环境中运行RoR应用程序,但是我在测试数据库上的迁移存在问题。

我的database.yml文件如下:

default: &default
  adapter: postgresql
  pool: 5
  timeout: 5000

development:
  <<: *default
  database: questionnaires-development

test:
  <<: *default
  database: questionnaires-test

现在,我使用以下命令创建数据库:

sudo -u postgres createdb -O karol questionnaires-development
sudo -u postgres createdb -O karol questionnaires-test

接下来,我将对开发数据库进行迁移:

rails db:migrate

我可以很容易地看到它的工作原理:

== 20180719143415 CreateQuestions: migrating ==================================
-- create_table(:questions)
   -> 0.0894s
== 20180719143415 CreateQuestions: migrated (0.0896s) =========================

== 20180722122658 CreateQuestionnaires: migrating =============================
-- create_table(:questionnaires)
   -> 0.1050s
== 20180722122658 CreateQuestionnaires: migrated (0.1051s) ====================

Database migrated.

我还可以使用Postgres CLI列出我的表,一切都很好:

questionnaires-development=# \dt
               List of relations
 Schema |         Name         | Type  | Owner 
--------+----------------------+-------+-------
 public | ar_internal_metadata | table | karol
 public | questionnaires       | table | karol
 public | questions            | table | karol
 public | schema_migrations    | table | karol
(4 rows)

但是现在我想对我的questionnaires-test数据库执行相同的操作。所以我运行了该命令:

rails db:migrate RAILS_ENV=test

但是结果令人担忧:

Database migrated.

试图列出我的表,我的担心得到了证实:

questionnaires-test=# \dt
No relations found.

那么,我在做什么错了?

0 个答案:

没有答案