使用Blog引擎创建数据库时出错

时间:2011-05-16 14:22:15

标签: ruby-on-rails-3 refinerycms

我已经安装了RefineryCMS应用程序,一切正常,直到我决定安装其Blog引擎。

我从头开始运行应用迁移(包括博客),我收到以下错误:

Mysql2::Error: Unknown column 'custom_title' in 'field list': INSERT INTO `pages`  (`browser_title`, `path`, `meta_description`, `created_at`, `link_url`, `custom_title_type`, `draft`, `title`, `skip_to_first_child`, `deletable`, `updated_at`, `position`, `rgt`, `custom_title`, `meta_keywords`, `parent_id`, `menu_match`, `lft`, `show_in_menu`, `depth`) VALUES (NULL, NULL, NULL, '2011-03-10 16:32:08', '/blog', 'none', 0, 'Blog', 0, 0, '2011-03-10 16:32:08', 2, 8, NULL, NULL, NULL, '^/blogs?(/|/.+?|)$', 7, 1, NULL)

我已经看到这是一个known issue,但我无法为开发和生产环境找到一个简洁的解决方案。

顺便说一句,我看到这种情况发生在我使用rails g engine_name命令安装的自定义引擎上。奇怪的是,如果您在之前运行过之前的所有迁移之后运行这些迁移,则不会发生这种情况。它只是在从头开始运行所有应用程序迁移时才会发生。

有什么想法吗?

更新

这是我的db/seeds/refinerycms_blog.rb文件,看起来就像我收到的评论之后:

Page.reset_column_information

User.find(:all).each do |user|
  user.plugins.create(:name => "refinerycms_blog",
                      :position => (user.plugins.maximum(:position) || -1) +1)
end

page = Page.create(
  :title => "Blog",
  :link_url => "/blog",
  :deletable => false,
  :position => ((Page.maximum(:position, :conditions => {:parent_id => nil}) || -1)+1),
  :menu_match => "^/blogs?(\/|\/.+?|)$"
)

Page.default_parts.each do |default_page_part|
  page.parts.create(:title => default_page_part, :body => nil)
end

但它仍然没有用。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将以下内容添加到它复制到db / seeds /的博客种子文件的顶部:

Page.reset_column_information