J'utilise ActiveRecord
pour migrer les modifications vers postgresql db. Le nom du schéma par défaut est "public". Où est la meilleure façon de renommer cela en "mon-projet-nom".?Modifier le nom de schéma de postgresql db de "public" à "my-project"
0
A
Répondre
2
Il n'existe aucune méthode de ce type dans ActiveRecord::Migration
pour modifier le nom du schéma, mais vous pouvez utiliser plain sql command
.
d'abord générer un fichier de migration:
$> bundle exec rails g migration RenameSchema
Ensuite, ouvrez-le et ajoutez:
class RenameSchema < ActiveRecord::Migration
def up
execute "ALTER SCHEMA you_old_name RENAME TO you_new_name"
end
def down
execute "ALTER SCHEMA you_new_name RENAME TO you_old_name"
end
end
Avec cette migration, vous pouvez changer de nom et rollback en arrière.
Remarque: Vous devez posséder le schéma pour utiliser ALTER SCHEMA. Pour renommer un schéma, doit également avoir le privilège CREATE pour la base de données.