Comment supprimer des tables sélectionnées dans Rails? Je veux supprimer toutes les tables d'une base de données avec un préfixe donné. PHPMyAdmin serait très utile à ce stade.Supprimer des tables mysql dans Rails
Merci
Comment supprimer des tables sélectionnées dans Rails? Je veux supprimer toutes les tables d'une base de données avec un préfixe donné. PHPMyAdmin serait très utile à ce stade.Supprimer des tables mysql dans Rails
Merci
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
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
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. –
Je suis enclin à être d'accord avec Tomas dans ce cas. –