Quelques points si quelqu’un d’autre se retrouve bloqué de cette façon.
D’abord, n’exécutez pas ./launcher cleanup, mais plutôt ./launcher start app pour redémarrer votre conteneur existant. Vous pourrez alors faire quelque chose comme :
./launcher enter app
su - postgres
psql discourse
drop table ...
Sans le conteneur dans lequel entrer et parler directement à postgres, vous devez le faire pendant la construction du conteneur en ajoutant quelque chose comme ceci à votre app.yml :
hooks:
after_postgres:
- exec: /bin/bash -c 'sudo -u postgres psql discourse <<EOF "drop table summary_sections;"'
- exec: /bin/bash -c 'sudo -u postgres psql discourse <<EOF "drop table theme_settings_migrations;"'
Je ne sais pas comment ces deux tables ont été créées de telle sorte que les migrations étaient désynchronisées, mais c’était une solution. Et c’était encore plus étrange, car la base de données avait été effacée d’une manière ou d’une autre et une fois que j’ai corrigé cela, c’était une toute nouvelle base de données, donc elle a dû être arrêtée quelque part au milieu d’une migration à un moment donné.