Set suitable permission to postgres tests user
Ce qu'il se passe :
Lorsque l'on souhaite lancer les tests en local avec la commande tape la commande :
bundle exec rspec --profile 10 --format RspecJunitFormatter --out ~/test_results/rspec.xml --format progress
génère l'erreur :
This is most likely caused due to missing permissions.
Rails needs superuser privileges to disable referential integrity.
cause: PG::InsufficientPrivilege: ERROR: permission denied: "RI_ConstraintTrigger_a_17801" is a system trigger
: ALTER TABLE "action_text_rich_texts" DISABLE TRIGGER ALL;ALTER TABLE "bill_signatures" DISABLE TRIGGER ALL;ALTER TABLE "delayed_jobs" DISABLE TRIGGER ALL;ALTER TABLE "drop_down_lists" DISABLE TRIGGER ALL;ALTER TABLE "flipper_gates" DISABLE TRIGGER ALL;ALTER TABLE "invites" DISABLE TRIGGER ALL;ALTER TABLE "task_records" DISABLE TRIGGER ALL;ALTER TABLE "administrateurs_instructeurs" DISABLE TRIGGER ALL;ALTER TABLE "schema_migrations" DISABLE TRIGGER ALL;ALTER TABLE "ar_internal_metadata" DISABLE TRIGGER ALL;ALTER TABLE "active_storage_attachments" DISABLE TRIGGER ALL;ALTER TABLE "administrateurs_procedures" DISABLE TRIGGER ALL;ALTER TABLE "active_storage_blobs" DISABLE TRIGGER ALL;ALTER TABLE "administrations" DISABLE TRIGGER ALL;ALTER TABLE "deleted_dossiers" DISABLE TRIGGER ALL;ALTER TABLE "commentaires" DISABLE TRIGGER ALL;ALTER TABLE "etablissements" DISABLE TRIGGER ALL;ALTER TABLE "exercices" DISABLE TRIGGER ALL;ALTER TABLE "exports" DISABLE TRIGGER ALL;ALTER TABLE "exports_groupe_instructeurs" DISABLE TRIGGER ALL;ALTER TABLE "flipper_features" DISABLE TRIGGER ALL;ALTER TABLE "follows" DISABLE TRIGGER ALL;ALTER TABLE "france_connect_informations" DISABLE TRIGGER ALL;ALTER TABLE "initiated_mails" DISABLE TRIGGER ALL;ALTER TABLE "individuals" DISABLE TRIGGER ALL;ALTER TABLE "geo_areas" DISABLE TRIGGER ALL;ALTER TABLE "module_api_cartos" DISABLE TRIGGER ALL;ALTER TABLE "refused_mails" DISABLE TRIGGER ALL;ALTER TABLE "services" DISABLE TRIGGER ALL;ALTER TABLE "received_mails" DISABLE TRIGGER ALL;ALTER TABLE "procedure_presentations" DISABLE TRIGGER ALL;ALTER TABLE "without_continuation_mails" DISABLE TRIGGER ALL;ALTER TABLE "users" DISABLE TRIGGER ALL;ALTER TABLE "virus_scans" DISABLE TRIGGER ALL;ALTER TABLE "trusted_device_tokens" DISABLE TRIGGER ALL;ALTER TABLE "assign_tos" DISABLE TRIGGER ALL;ALTER TABLE "groupe_instructeurs" DISABLE TRIGGER ALL;ALTER TABLE "attestation_templates" DISABLE TRIGGER ALL;ALTER TABLE "attestations" DISABLE TRIGGER ALL;ALTER TABLE "avis" DISABLE TRIGGER ALL;ALTER TABLE "types_de_champ" DISABLE TRIGGER ALL;ALTER TABLE "closed_mails" DISABLE TRIGGER ALL;ALTER TABLE "administrateurs" DISABLE TRIGGER ALL;ALTER TABLE "instructeurs" DISABLE TRIGGER ALL;ALTER TABLE "procedures" DISABLE TRIGGER ALL;ALTER TABLE "dossier_operation_logs" DISABLE TRIGGER ALL;ALTER TABLE "dossiers" DISABLE TRIGGER ALL;ALTER TABLE "feedbacks" DISABLE TRIGGER ALL;ALTER TABLE "champs" DISABLE TRIGGER ALL
Suggestion
Appliquer les droits root au user postgres db_test_user_name
lors de la configuration de la base donnée dans le fichier default.pp
.
Ressources PUPPET
Module Postgres > Manage users, roles, and permissions
class { 'postgresql::server':
}
postgresql::server::role { 'marmot':
password_hash => postgresql::postgresql_password('marmot', 'mypasswd'),
}
postgresql::server::database_grant { 'test1':
privilege => 'ALL',
db => 'test1',
role => 'marmot',
}
postgresql::server::table_grant { 'my_table of test2':
privilege => 'ALL',
table => 'my_table',
db => 'test2',
role => 'marmot',
}
Ressources Postgres
ALTER TABLE DISABLE TRIGGER
: