新しいワークステーションに既存のRailsアプリをセットアップしています。を実行しようとするとrake db:migrate
、最初のテーブルを作成しようとする前に、この奇妙なエラーが発生します(はい、最初はrake db:create
):
$ bundle exec rake db:migrate
rake aborted!
Mysql2::Error: Table 'myapp_dev.usage_roles' doesn't exist: SHOW FULL FIELDS FROM `usage_roles`
# ... followed by a long stack trace
rakeタスクがテーブルのフィールドが存在する前に表示しようとしている理由を推測することはできません。私はアプリでこのテーブルの多くの言及を見さえしません。完全なgrepは次のとおりです。
$ grep -r usage_roles .
Binary file ./.git/index matches
./app/models/usage/role.rb: self.table_name = 'usage_roles'
./app/models/usage/user.rb: where(" usage_roles.name in (?)", Usage::Role::SUPPORT_ROLES)
./coverage/index.html: <code class="ruby"> self.table_name = 'usage_roles'</code>
./coverage/index.html: <code class="ruby"> where(" usage_roles.name in (?)", Usage::Role::SUPPORT_ROLES)</code>
./db/migrate/20130112104233_create_usage_roles.rb: execute('CREATE VIEW usage_roles AS SELECT
./db/migrate/20130112104233_create_usage_roles.rb: * FROM clu_enums.usage_roles;')
./db/migrate/20130112104233_create_usage_roles.rb: execute('DROP VIEW IF EXISTS usage_roles;')