Debian 4.0 で rake db:migrate に失敗する
公開日:
:
最終更新日:2014/02/04
未分類
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
追記(2009/01/03)
以下の手順で無事にrakeできるようになった。
$ sudo aptitude remove libsqlite3-ruby
$ sudo aptitude remove libsqlite3-ruby1.8
$ sudo gem1.8 uninstall sqlite3-ruby
$ sudo gem1.8 install sqlite3-ruby
$ rake db:migrate
$ rake db:migrate VERSION=0
$ rake db:migrate
Rubyをパッケージではなくローカルでビルドした場合、ライブラリもgemのものを使う必要がある、ということかもしれない。後日検証してみたい。
問題解決には id:Ubuntu, id:takano32, id:showyou が協力してくれた。助かりました。ありがとうございます。
本文
環境は以下の通り。
$ cat /etc/debian_version
4.0
$ uname -a
Linux debian 2.6.18-6-amd64 #1 SMP Wed Oct 15 10:07:11 UTC 2008 x86_64 GNU/Linux
$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]
$ gem1.8 -v
1.3.1
$ rails -v
Rails 2.2.2
$ rake --version
rake, version 0.8.3
rake db:migrate してみる。
$ rake db:migrate
(in /home/akio0911/svn/akio0911/platform/rails/twitter-analyze)
== 20081219022403 CreateStatuses: migrating ===================================
-- create_table(:statuses)
-> 0.1202s
== 20081219022403 CreateStatuses: migrated (0.1206s) ==========================
== 20090102123714 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0739s
-- add_index(:users, :screen_name, {:unique=>true})
-> 0.0662s
== 20090102123714 CreateUsers: migrated (0.1409s) =============================
rake aborted!
Could not find table 'statuses'
詳細なログを確認する。
$ rake db:migrate --trace
(in /home/akio0911/svn/akio0911/platform/rails/twitter-analyze)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
** Invoke db:schema:dump (first_time)
** Invoke environment** Execute db:schema:dump
rake aborted!
Could not find table 'statuses'
/usr/lib/ruby/gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:29:in `table_structure'
schema.rb の生成に失敗しているようだ。
rake db:schema:dump 単体で実行してみる。
rake db:schema:dump
(in /home/akio0911/svn/akio0911/platform/rails/twitter-analyze)
rake aborted!
Could not find table 'statuses'
schema.rb の内容を確認してみる。
$ cat db/schema.rb
ActiveRecord::Schema.define(:version => 20090102123714) do
schema.rb の内容がここで切れてしまっている。さて、どうしたものか・・・。