2010-05-05 7 views

Répondre

1

Vous pouvez installer phpMyAdmin et supprimer manuellement vos tables, ou si vous voulez le faire à partir dans le cadre des rails et vous garder les migrations en synchronisation, pourquoi ne pas créer une nouvelle migration qui laisse tomber les tables sur l'auto .up et crée les tables sur self.down.

class DropOldTablesMigration < ActiveRecord::Migration 
    def self.up 
    drop_table :prefix_table1 
    drop_table :prefix_table2 
    end 

    def self.down 
    create_table :prefix_table1 do |t| 
     t.column :name, :string 
    end 
    create_table :prefix_table2 do |t| 
     t.column :name, :string 
    end 
    end 
end 

EDIT: Juste pour le suivi, si la question est qu'il ya beaucoup de tables et vous ne voulez pas les taper tout, vous pouvez faire quelque chose comme ceci:

class DropOldTablesMigration < ActiveRecord::Migration 
    def self.up 
    ActiveRecord::Base.connection.tables.each do |t| 
     unless t.index('yourprefix_') == nil 
     drop_table t 
     end 
    end 
    end 
end 

Bien sûr, vous ne pourrez pas recréer les tables lorsque vous migrerez de cette façon, mais en fonction de ce qui se passe dans votre application, cela peut ne pas poser problème.


EDIT EN RÉPONSE À VOTRE COMMENTAIRE:

Pour créer une nouvelle migration, à partir de la racine de votre application exécutez la commande suivante:

script/generate migration YourMigrationName 

Le fichier de migration sera créé pour vous en db/migrate. Ajoutez le code que vous voulez exécuter et enregistrez-le. Pour exécuter le nouveau fichier, entrez ce qui suit à la ligne de commande

rake db:migrate 
+0

Désolé, je suis vraiment nouveau sur Rails. J'essaye d'installer Wordpress dans/public, ainsi je devrais seulement abandonner mes tables (brisées) - Wordpress s'occupera de la réinstallation. Donc - je crée par ex. db/migrate/001_drop_old_tables.rb, insérez votre code, moins le bit 'self.down', puis exécutez-le? Comment l'exécuter une fois que j'ai déployé le nouveau fichier? – strangerpixel

+3

Je pense que vous devriez simplement installer phpmyadmin et laisser tomber les tables manuellement. Il semble que ce n'est pas vraiment lié à votre application rails. –

+0

Je suis enclin à être d'accord avec Tomas dans ce cas. –

Questions connexes