我正在将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项目这一事实有关。
答案 0 :(得分:0)
好的,发现了问题。
旧的(rails 2.x)bootstrapper gem需要一个名为lib/tasks/bootstrapper.rake
的文件。我在我的rails项目上有这个文件,它正在搞乱rake任务。删除文件解决了这个问题。