1

非常に単純な移​​行があります。

class RemoveAuthorIdFromBooks < ActiveRecord::Migration
  def change
    remove_column :books, :author_id
  end

end

しかし、次のエラーが発生します。

Mysql2::Error: Error on rename of './mysite_staging/#sql-3b1_3c78' to './mysite_staging/books' (errno: 150): ALTER TABLE `books` DROP `author_id`

これはテーブルの説明です:

+------------------+---------------+------+-----+---------+----------------+
| Field            | Type          | Null | Key | Default | Extra          |
+------------------+---------------+------+-----+---------+----------------+
| id               | int(11)       | NO   | PRI | NULL    | auto_increment |
| author_id        | int(11)       | NO   | MUL | NULL    |                |
| title            | varchar(255)  | NO   |     | NULL    |                |
| teaser           | varchar(500)  | NO   |     | NULL    |                |
| description      | varchar(2000) | YES  |     | NULL    |                |
| cover_image      | varchar(255)  | NO   |     | NULL    |                |
| publication_date | date          | NO   |     | NULL    |                |
| enabled          | tinyint(1)    | NO   |     | 1       |                |
| created_at       | datetime      | NO   |     | NULL    |                |
| updated_at       | datetime      | NO   |     | NULL    |                |
| excerpt          | text          | YES  |     | NULL    |                |
| featured         | tinyint(1)    | YES  |     | NULL    |                |
| site_id          | int(11)       | YES  |     | NULL    |                |
+------------------+---------------+------+-----+---------+----------------+

手がかりはありますか?

4

2 に答える 2

1

何らかの理由で、外部キー制約が削除文を壊していました。

私は次のことをしました:

show create table books;

外部キー名を見て、次に:

alter table books drop foreign key books_ibfk_1;

その後、 rake db:migrate が機能しました。

于 2013-02-14T20:41:48.773 に答える