0 0

rails 在heroku 部署的问题5

本人的rails程序想在heroku上部署。但当运行heroku rake db:migrate 时 总是没反映。
下面是我的 heroku logs

2011-08-10T09:08:41+00:00 heroku[rake.1]: State changed from created to starting
2011-08-10T09:08:43+00:00 app[rake.1]: Awaiting client
2011-08-10T09:08:43+00:00 app[rake.1]: Starting process with command `rake db:migrate`
2011-08-10T09:08:43+00:00 heroku[rake.1]: State changed from starting to up
2011-08-10T09:08:45+00:00 heroku[rake.1]: Process exited
2011-08-10T09:08:45+00:00 heroku[rake.1]: State changed from up to complete


版本

Rails 3.0.8
ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
gem 1.8.5
Bundler version 1.0.15
rake (0.8.7)

rake 原本是 0.9.2
因为之前自己也找了很多办法解决。
有一个是说 改成0.8.7 于是改的

还不见效果。

希望能指点指点

问题补充:
夜鸣猪 写道
没看出来什么问题,随便提几个吧

什么的数据库
RAILS_ENV=production环境的事知道对吧
database.yml和schema_migrations呢?


你好, 夜鸣猪,
很感谢你的回复
数据库是mysql的。
database.yml配置如下
development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: blog_development
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

其他两个不知道了。

问题补充:
夜鸣猪 写道
没看出来什么问题,随便提几个吧

什么的数据库
RAILS_ENV=production环境的事知道对吧
database.yml和schema_migrations呢?


貌似我的数据库没有传到heroku去,
也就是 heroku rake db:migrate 没有生效
因为我运行 heroku console后

运行 @admins=Admin.all()这个代码 提示

ActiveRecord::StatementInvalid: PGError: ERROR:  relation "admins" does not exist
: SELECT "admins".* FROM "admins"

问题补充:
夜鸣猪 写道
那就先改一下database.yml里的development成production,然后,运行

后面那个是说看看你的migration到多少版本了

或者,heroku console能跑吗?



你好 夜鸣猪。
非常感谢你的回复。
首先我将 database.yml 中的 development 改成了 production, 然后运行 heroku rake db:migrate  无果。
我查看了 schema_migrations 显示结果为
| 20110726131618 |
| 20110727131434 |

heroku console 能运行。在 heroku console 中运行@admins=Admin.all()

显示
ActiveRecord::StatementInvalid: PGError: ERROR:  relation "admins" does not exist
: SELECT "admins".* FROM "admins"

我想是因为heroku rake db:migrate 这个命令没有其作用,所以没有提交到远程数据库的缘故的。

问题补充:
夜鸣猪 写道
所以20110727131434 是你最后一个migration文件的名字一部分吗?

然而,如果数据库不是空的,那我就建议你

rake db:drop:all了从新再跑



你好,夜鸣猪。
感谢你的回复和帮助。
按照你的方法做了 依然没有起任何作用。


问题补充:
夜鸣猪 写道


没有起任何作用要详细说,呵呵

否则,我们很不容易搞清楚问题在哪,也就帮不了你,最好能把相关现场的截图日志发上来,别人看到也会帮你看看,可能的问题在哪

1. 20110727131434 是你最后一个migration文件的名字一部分吗?

2. rake db:drop:all 运行有结果吗?

3. 这时 schema_migrations是多少? (实际是要确保表删除了)

4. 再运行 rake db:migrate,有没有结果显示

5  这时,schema_migrations是多少?

6  console有没有变化?


真正能帮助你的人是你自己

我能想到的也就这些啦,再不行我也没有办法了。我自己用heroku的时候其实都比较顺畅,没遇到这些麻烦。

或者,项目不大你把heroku项目授权我,我给你配起来?



你好夜鸣猪,很感谢你的帮助。
前几天工作太忙了。一直没时间来关注这个问题。
很不好意思。
1、20110727131434 是我数据库中这个 schema_migrations 表的 version字段的最后一个记录。
2、rake db:drop:all  运行有结果。清空了我项目相关的数据库
3、已经删除 没有任何字段
4、之后运行rake db:migrate 显示没有数据库  blog_develoment  这个是我项目用到的数据库, 因为 运行 rake db:drop:all  已经删光了。 后来我将 之前备份 sql 导入。就是复制了之前数据库的内容。
5、因为导入了之前的备份,所以 现在schema_migrations 还是20110727131434。

heroku  logs  已经在问题 首部 贴出。

很感谢你的帮助。 项目是不大。 即使给你也没关系。 但是 这并不是解决问题的办法。

我最近参加的项目 比较 急  可能有时候 会慢回复你。

zhouguangming1989#gmail.com (#->@)
这是我的邮箱。可以发邮件给我。
非常感谢。
2011年8月10日 17:13

5个答案 按时间排序 按投票排序

0 0

heroku rake db:migrate
提示没有数据库的时候

heroku rake db:create
创建数据库

2011年8月18日 21:02
0 0



没有起任何作用要详细说,呵呵

否则,我们很不容易搞清楚问题在哪,也就帮不了你,最好能把相关现场的截图日志发上来,别人看到也会帮你看看,可能的问题在哪

1. 20110727131434 是你最后一个migration文件的名字一部分吗?

2. rake db:drop:all 运行有结果吗?

3. 这时 schema_migrations是多少? (实际是要确保表删除了)

4. 再运行 rake db:migrate,有没有结果显示

5  这时,schema_migrations是多少?

6  console有没有变化?


真正能帮助你的人是你自己

我能想到的也就这些啦,再不行我也没有办法了。我自己用heroku的时候其实都比较顺畅,没遇到这些麻烦。

或者,项目不大你把heroku项目授权我,我给你配起来?

2011年8月14日 23:37
0 0

所以20110727131434 是你最后一个migration文件的名字一部分吗?

然而,如果数据库不是空的,那我就建议你

rake db:drop:all了从新再跑

2011年8月14日 07:36
0 0

那就先改一下database.yml里的development成production,然后,运行

后面那个是说看看你的migration到多少版本了

或者,heroku console能跑吗?

2011年8月12日 22:59
0 0

没看出来什么问题,随便提几个吧

什么的数据库
RAILS_ENV=production环境的事知道对吧
database.yml和schema_migrations呢?

2011年8月12日 00:16

相关推荐

Global site tag (gtag.js) - Google Analytics