Ich muss meinen Spaltentyp für eine von mir erstellte App von Datum auf Datum / Uhrzeit ändern. Die Daten sind mir egal, da sie noch entwickelt werden.
Wie kann ich das machen?
Ich muss meinen Spaltentyp für eine von mir erstellte App von Datum auf Datum / Uhrzeit ändern. Die Daten sind mir egal, da sie noch entwickelt werden.
Wie kann ich das machen?
Zuerst in Ihrem Terminal:
rails g migration change_date_format_in_my_table
Dann in Ihrer Migrationsdatei:
Für Schienen> = 3.2:
class ChangeDateFormatInMyTable < ActiveRecord::Migration
def up
change_column :my_table, :my_column, :datetime
end
def down
change_column :my_table, :my_column, :date
end
end
change
anstelle der Methodenup
und keine einzelne Methode verwendet wirddown
, liegt dies daran, dass diechange
Methode diechange_column
Migrationsdefinition nicht unterstützt .Wenn Sie Rails 3 oder höher verwenden, müssen Sie die Methoden
up
und nichtdown
verwenden. Sie können einfach verwendenchange
:quelle
This migration uses change_column, which is not automatically reversible.
To make the migration reversible you can either:
1. Define #up and #down methods in place of the #change method.
2. Use the #reversible method to define reversible behavior.
In Rails 3.2 und Rails 4 ist Benjamins beliebte Antwort eine etwas andere Syntax.
Zuerst in Ihrem Terminal:
Dann in Ihrer Migrationsdatei:
quelle
Es gibt eine change_column- Methode. Führen Sie sie einfach in Ihrer Migration mit datetime als neuem Typ aus.
quelle
AFAIK, Migrationen dienen dazu, Daten, die Ihnen wichtig sind (dh die Produktion), bei Schemaänderungen umzugestalten. Wenn dies nicht falsch ist und er gesagt hat, dass ihm die Daten egal sind, warum nicht einfach den Spaltentyp in der ursprünglichen Migration von Datum zu Datum / Uhrzeit ändern und die Migration erneut ausführen? (Hoffe du hast Tests :)).
quelle
rake db:migrate:reset
.