Ich möchte eine Tabellenspalte von der Rails-Konsole umbenennen, ohne eine Migration zu schreiben.Wie kann ich eine Spalte aus Rails-Konsole ohne Migration umbenennen?
Wie kann ich das tun?
Ich möchte eine Tabellenspalte von der Rails-Konsole umbenennen, ohne eine Migration zu schreiben.Wie kann ich eine Spalte aus Rails-Konsole ohne Migration umbenennen?
Wie kann ich das tun?
rails dbconsole
ALTER TABLE name RENAME column TO column
Nur eine Randnotiz @Boti, Ihre 'db/schema.rb' wird nicht mit dieser Methode aktualisiert, was möglicherweise Probleme bei der Bereitstellung verursachen wird. Wenn es ein solches Problem gibt, möchten Sie vielleicht 'rake db: schema: dump' ausführen, damit Ihre Schemadatei mit der aktuellen Datenbankstruktur (und Benennung) synchronisiert wird. –
rails g migration ChangeColName
Sie die Datei db bearbeiten/Migration/"Zeitstempel" _change_col_name.rb in def Wechseleinsatz -
rename_column :tablename, :old_column_name, :new_column_name -save
Sie in der Konsole laufen : rake db:migrate
:-)
Ich bin mir nicht sicher, ob Sie "Konsole" mit "Terminal" verwechseln, aber das OP bedeutete, wie dies in der eigentlichen Rails-Konsole (der IRB-Schnittstelle) zu tun ist, ohne eine Migrationsdatei zu schreiben/auszuführen. –
Ich entschied ich diese von der Konsole ausführen:
ActiveRecord::Base.connection.rename_column :tablename, :old_column_name, :new_column_name
Beste Antwort. Sie können Befehle genau wie in der Rails-Migration ausführen. –
Sie es ohne Migration nicht tun sollen, es ist nicht best practice noch Schienen Weg. –
Ich weiß, das war ein sehr nervtötendes db out-of-sync-Problem ... – Boti