2011-12-01 19 views

答えて

1

はどのように:some_columnは、あなたがしたい列の名前です:

add_column :users, :is_active, :boolean, :after => :some_column 

追加:is_active after。

1

一般に、あなたはできませんし、気にしないでください。リレーショナルデータベースのテーブルには、実際には特定の順序はありません。そのため、INSERTすると列を指定し、select * ...のようなことは絶対にしないといけません(ActiveRecordはそれを行いますが、それは良い考えではありません。なぜなら、ARが崖から飛び降りてあなたを意味するわけではないからです〜など)。

あなたはそれのためにデータベースの仕事をしようとしていることを主張した場合、その後移植可能な方法は次のとおりです。

  1. 別のテーブルにテーブルをコピーするか、名前を変更します。
  2. オリジナルを削除します((1)で名前を変更しない限り)。
  3. 新しいテーブルを必要な順序で作成します。
  4. データベースが(3)のご注文に注意を払うことを願っています。
  5. データを(1)の表から(3)の「新しい」表にコピーします。
  6. ...
  7. Profit。

MySQLまたはMySQL2データベースアダプタを使用している場合は、:after => :some_column optionadd_columnを使用できます。 SQLiteまたはPostgreSQLを使用している場合は、上の移植可能な方法を参照してください。何か他のものを使用しているなら、サポートされているものを見るためにアダプテーターのドキュメントやソースコードを読まなければなりません。

しかし、先に進む前にこれをやりたいと思う理由を尋ねてください。

+0

:sqliteでの作業後 – Amala

+0

あまりにも多くのものを使用して私は混乱していたと思う。私は人を混乱させないように私のコメントを削除することができます。 – Amala

+0

@Amala:心配する必要はありません。すべてをきれいにして、もっと面白いものに移ります:) –

関連する問題