gpt4 book ai didi

ruby-on-rails - ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: 关系 "wikis"不存在

转载 作者:行者123 更新时间:2023-11-29 13:11:51 24 4
gpt4 key购买 nike

我不知道从这里去哪里。

Rails 4.2.5、Ruby 2.3.8、Devise、Heroku 7.16.7

应用程序在本地运行良好,并成功部署到 Heroku。当我访问实时应用程序时,主页会按预期填充,并且可以访问“关于”页面。我有一个 wiki 索引链接,当我尝试访问它时,出现以下 wiki 错误。查看索引页面不需要登录。

当我点击登录或注册链接时,我遇到了同样的错误。模式显示为两个模型创建的表。

我尝试过的事情:

  • 在注释掉 devise_for: users 后从测试分支部署,推送到 Heroku 以便迁移运行,随后取消注释 devise_for: users 并将 agin 推送到 Heroku。运气不好。

  • 我试过 rake db:reset。运气不好。

  • 我在我的工厂文件中查找并没有找到任何对 Rails 模型的引用。

  • RAILS_ENV=test heroku rake db:migrate

维基错误

2018-12-13T00:08:10.414883+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "wikis" does not exist
2018-12-13T00:08:10.414885+00:00 app[web.1]: LINE 1: SELECT "wikis".* FROM "wikis" ORDER BY created_at DESC
2018-12-13T00:08:10.414887+00:00 app[web.1]: ^
2018-12-13T00:08:10.414888+00:00 app[web.1]: : SELECT "wikis".* FROM "wikis" ORDER BY created_at DESC):
2018-12-13T00:08:10.414890+00:00 app[web.1]: app/policies/wiki_policy.rb:42:in `resolve'
2018-12-13T00:08:10.414892+00:00 app[web.1]: app/controllers/wikis_controller.rb:26:in `index'
2018-12-13T00:08:10.414893+00:00 app[web.1]:
2018-12-13T00:08:10.414895+00:00 app[web.1]:

登录/注册错误

2018-12-13T00:09:49.468548+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR:  relation "users" does not exist
2018-12-13T00:09:49.468550+00:00 app[web.1]: LINE 5: WHERE a.attrelid = '"users"'::regclass
2018-12-13T00:09:49.468552+00:00 app[web.1]: ^
2018-12-13T00:09:49.468553+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod),
2018-12-13T00:09:49.468555+00:00 app[web.1]: pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
2018-12-13T00:09:49.468557+00:00 app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
2018-12-13T00:09:49.468558+00:00 app[web.1]: ON a.attrelid = d.adrelid AND a.attnum = d.adnum
2018-12-13T00:09:49.468560+00:00 app[web.1]: WHERE a.attrelid = '"users"'::regclass
2018-12-13T00:09:49.468561+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
2018-12-13T00:09:49.468564+00:00 app[web.1]: ORDER BY a.attnum
2018-12-13T00:09:49.468565+00:00 app[web.1]: ):

spec/factories/wikis.rb

FactoryGirl.define do
factory :wiki do
title "MyString"
body "MyText"
private false
user
end
end

spec/factories/users.rb

FactoryGirl.define do
factory :user do
email 'sample_user@google.com'
password 'sample_password'
end
end

我非常感谢对此的一些帮助。

提前致谢!

最佳答案

以下关于您的部署情况的一组陈述假定一个正常配置的 Rails 应用程序。

您的项目正在处理三个独立的部署,每个部署都有自己的数据库(因此也有自己的数据库迁移状态)。你的三个环境是(标签任意):

  • “test”:在本地机器上运行,使用本地数据库,在命令行中使用 RAILS_ENV=test 或通过“rake test”等命令隐式设置
  • “开发”:在您的本地计算机上运行,​​使用本地数据库(不同于您的本地测试数据库,正如您通过查看 database/config.yml 所见)
  • “heroku”:在 Heroku 的服务器上运行,在 Heroku 的服务器上有一个数据库

以下是您如何在每个单独的部署中运行迁移:

  • "test": RAILS_ENV=test rake db:migrate(环​​境变量配置Rails,然后Rails.env用于从database.yml中选择一个配置)
  • “开发”:rake db:migrate(“开发”是默认的 Rails 环境)
  • “heroku”:heroku run rake db:migrate <---- 可能是您的解决方案。

我最好的猜测是,您需要运行最后一条命令,以确保已将迁移(包括名为 CreateWikis 的迁移)应用到“heroku”部署中的数据库。

关于ruby-on-rails - ActiveRecord::StatementInvalid (PG::UndefinedTable: ERROR: 关系 "wikis"不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53753492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com