Ruby on rails Heroku只初始化了我的一些模型

Ruby on rails Heroku只初始化了我的一些模型,ruby-on-rails,sqlite,heroku,Ruby On Rails,Sqlite,Heroku,所以我跑了 heroku db:push 它回来了 Sending schema Schema: 100% |==========================================| Time: 00:00:08 Sending indexes schema_migrat: 100% |==========================================| Time: 00:00:00 projects: 100% |========

所以我跑了

 heroku db:push
它回来了

 Sending schema
 Schema:        100% |==========================================| Time: 00:00:08
 Sending indexes
 schema_migrat: 100% |==========================================| Time: 00:00:00
 projects:   100% |==========================================| Time: 00:00:00
 tasks:         100% |==========================================| Time: 00:00:00
 users:         100% |==========================================| Time: 00:00:00
 Sending data
 8 tables, 70,551 records
 groups:        100% |==========================================| Time: 00:00:00
 schema_migrat: 100% |==========================================| Time: 00:00:00
 projects:   100% |==========================================| Time: 00:00:00
 tasks:         100% |==========================================| Time: 00:00:02
 authenticatio: 100% |==========================================| Time: 00:00:00
 articles:       100% |==========================================| Time: 00:08:27
 users:         100% |==========================================| Time: 00:00:00
 topics:        100% |==========================================| Time: 00:01:22
 Resetting sequences
当我去

  heroku console
这起作用了

  >> Task
  => Task(id: integer, topic: string, content: string,
这起作用了

 >> User
  => User(id: integer, name: string, email: string,
但其余的只返回了类似的结果

 >> Project
   NameError: uninitialized constant Project
/home/heroku_rack/lib/console.rb:150
/home/heroku_rack/lib/console.rb:150:in `call'
/home/heroku_rack/lib/console.rb:28:in `call'


>> Authentication
  NameError: uninitialized constant Authentication
/home/heroku_rack/lib/console.rb:150
/home/heroku_rack/lib/console.rb:150:in `call'
更新1:

当我打字的时候

  >> ActiveRecord::Base.connection.tables
它回来了

   => ["projects", "groups", "tasks", "topics", "articles", "schema_migrations", "authentications", "users"]
使用heroku的SQL控制台插件

我得到

 SQL> show tables
 +-------------------+
 |    table_name     |
 +-------------------+
 | authentications   |
 | topics            |
 | groups            |
 | projects          |
 | schema_migrations |
 | tasks             |
 | articles          |
 | users             |
 +-------------------+
所以我认为它们已经存在于heroku的数据库中

机架数据库可能有问题:迁移

更新2:

我在生产和开发模式下运行了rack db:本地迁移,没有发生任何错误

但是当我在heroku上运行它时 它只返回:

  $ heroku rake db:migrate
 (in /disk1/home/slugs/389817_1c16250_4bf2-f9c9517b-bdbd-49d9-8e5a-a87111d3558e/mnt)
  $
此外,我正在使用sqlite3

更新3:

因此,我打开heroku控制台并输入以下命令

class Authentication < ActiveRecord::Base;end
令人惊讶的是,我能够调用身份验证类,但一旦我退出,什么都没有改变。

您将其称为pojects,它显示并验证

另外,你已经重新启动了应用程序,对吗

哦,你已经提交了git中的文件,并且做了一个正常的git推送heroku master,我希望也是这样


您只是一直在谈论heroku db:push,我很少在日常提交中使用该命令。

如果您确实缺少SQLite中的表,您会看到类似ProjectTable不存在这样的错误。

此错误:

 >> Project  
   NameError: uninitialized constant Project
表示缺少项目模型,该模型不属于数据库

尝试:


你在heroku上运行迁移了吗?我相信我运行了我的迁移我相信我运行了heroku rake db:migrate,除了我的dyno地址之外,它没有显示任何内容。“heroku rake db:migrate RAILS\u ENV=production”怎么样?我认为heroku只是截断了字符串。它显示了poject,因为我在粘贴邮件时无意中删除了r。奇怪。他们会出现在dev和heroku吗?当您在控制台中使用该选项时:Class.constants位于底部,通常会看到单个常量:Class.constants.grep/Project/I使用Class.constants.grep/User/it返回=>[User]但是,当我使用Class.constants.grep/Project/或Class.constants.grep/Projects/it返回=>[]ActiveRecord::Base.connection.tables显示项目实际上是Heroku数据库中的一个表OK,伙计,你需要抓取Heroku数据库gem。。。它就像数据库的控制台,您必须查看是否可以通过这种方式访问项目。看看github,因为我正在吃晚饭。我输入了胡说八道,它返回了相同的错误消息。对,你应该这样做。换句话说,错误消息是Rails表示它不知道该类是什么。如果Rails真的知道它是什么。。。此外,您还缺少一个表,它应该返回“表不存在”错误。我试图推断的是,问题不在于该表存在、不存在或缺少记录。问题是这个类根本没有被识别。问题似乎出在模型文件中。要么它们不正确,要么您没有将它们添加到提交中,要么它们被忽略。如果情况仍然不是这样的话。尝试通过在控制台中手动创建类来调试它。但它们在本地服务器上运行良好吗?无论如何,我将尝试在控制台中创建它们。这很奇怪,ActiveRecord::Base.connection.tables返回包含项目的结果,但是当我尝试Project时
git add .  
git commit -am 'update'
git push heroku master