我尝试使用以下代码删除并重置我的数据库:rake db:drop db:create db:migrate
并且由于某种原因它无法正常工作。现在,当我尝试运行该命令时,我得到:
FATAL: database "myapp_development" does not exist
FATAL: database "myapp_test" does not exist
ERROR: relation "posts" does not exist at character 315
STATEMENT: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"posts"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
如果我只尝试rake db:create db:migrate
,那么我会收到错误
myapp_development already exists
myapp_test already exists
ERROR: relation "posts" does not exist at character 315...
如果我只运行rake db:migrate
,那么我只得到错误的最后一部分:
PG::Error: ERROR: relation "posts" does not exist
LINE 5: WHERE a.attrelid = '"posts"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"posts"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
我尝试重新启动我的数据库:pg_ctl stop -D /usr/local/var/postgres
pg_ctl start -D /usr/local/var/postgres
,但无济于事。
我对这个问题完全停顿了。任何人都知道如何重置数据库并重新迁移?
答案 0 :(得分:1)
经过postgres的麻烦之后,事实证明这与数据库架构或postgres无关。
我只需要注释掉我的routes.rb文件,它引用了Post模型。随着routes.rb的注释,我运行了很好的迁移,然后取消注释routes.rb。