rails 3.0.12 update - 为什么没有加载这个gem的rake任务?

时间:2012-04-09 10:16:52

标签: ruby-on-rails ruby ruby-on-rails-3 rubygems rake

我正在将rails 2.x应用更新为rails 3.0.12。

这个应用程序使用bootstrapper gem来“种子”数据库。宝石的original fork似乎已停止在rails 2.x分支中,但我发现这个(理论上)与rails 3.2兼容的另一个fork(注意我正在更新到3.0.12,而不是3.2)。

所以这就是我的Gemfile现在所拥有的:

gem 'bootstrapper', :git => 'git://github.com/vivrass/bootstrapper.git'

运行bundle更新后,这似乎有效...除了gem应该添加一个名为rake db:bootstrap的新rake任务,并且当我执行rake -T db时它不会出现(我通过oh-my-zsh别名bundle exec rake -T db

rake db:create                         # Create the database from config/database.yml for the current Rails.env (use db:crea...
rake db:drop                           # Drops the database for the current Rails.env (use db:drop:all to drop all databases)
rake db:fixtures:load                  # Load fixtures into the current environment's database.
rake db:migrate                        # Migrate the database (options: VERSION=x, VERBOSE=false).
rake db:migrate:status                 # Display status of migrations
rake db:rollback                       # Rolls the schema back to the previous version (specify steps w/ STEP=n).
rake db:schema:dump                    # Create a db/schema.rb file that can be portably used against any DB supported by AR
rake db:schema:load                    # Load a schema.rb file into the database
rake db:seed                           # Load the seed data from db/seeds.rb
rake db:setup                          # Create the database, load the schema, and initialize with the seed data (use db:res...
rake db:structure:dump                 # Dump the database structure to an SQL file
rake db:version                        # Retrieves the current schema version number

我已经检查了回购,根据this post,宝石似乎正在做正确的事情:      - 它有一个railtie.rb文件,用于加载rake file      - railtie.rb文件包含在lib/bootstraper.rb file

然而,rake任务没有出现。

将rake任务添加到gem的过程是否已经从rails 3.0.x更改为3.2.x?

我正在运行ruby 1.9.3。

感谢。

编辑:

我在rails 3.0.12中创建了一个新的空rails项目,在Gemfile上添加了一行,捆绑后,出现了rake任务。这可能与我从rails 2.x更新而不是创建全新的rails 3.0.12项目这一事实有关。

1 个答案:

答案 0 :(得分:0)

好的,发现了问题。

旧的(rails 2.x)bootstrapper gem需要一个名为lib/tasks/bootstrapper.rake的文件。我在我的rails项目上有这个文件,它正在搞乱rake任务。删除文件解决了这个问题。