EsupPortail / Esup-Pod

plateforme de gestion de fichier vidéo
https://pod.esup-portail.org/
GNU Lesser General Public License v3.0
36 stars 76 forks source link

Probléme make createDB #692

Closed mael-agro closed 1 year ago

mael-agro commented 1 year ago

Bonjour, Je suis entrain d'installé pod v3 sur un serveur en debian 11 En suivant l'installation depuis https://www.esup-portail.org/wiki/display/ES/Installation+de+Pod+V3 J'ai un problème dans la partie mise prod. Je bloque sur la partie make createDB J'ai l'erreur suivante :

` Apply all migrations: admin, auth, authentication, authtoken, bbb, captcha, chapter, chunked_upload, completion, contenttypes, enrichment, flatpages, live, main, meeting, playlist, podfile, recorder, sessions, s ites, tagging, thumbnail, video
Traceback (most recent call last):
File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/utils.py", line 82, in _execute
return self.cursor.execute(sql)
File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 73, in execute
return self.cursor.execute(query, args)
File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/MySQLdb/cursors.py", line 206, in execute
res = self._query(query)
File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/MySQLdb/cursors.py", line 319, in _query
db.query(q)
File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/MySQLdb/connections.py", line 254, in query
_mysql.connection.query(self, query)
MySQLdb.ProgrammingError: (1146, "Table 'mydatabase.live_event' doesn't exist")

The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/django_projects/podv3/manage.py", line 39, in execute_from_command_line(sys.argv) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/init.py", line 419, in execute_from_command_line utility.execute() File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/init.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv self.execute(*args, cmd_options) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute output = self.handle(*args, *options) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/base.py", line 89, in wrapped res = handle_func(args, kwargs) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/commands/migrate.py", line 203, in handle emit_pre_migrate_signal( File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/core/management/sql.py", line 25, in emit_pre_migrate_signal models.signals.pre_migrate.send( File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 180, in send return [ File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/dispatch/dispatcher.py", line 181, in (receiver, receiver(signal=self, sender=sender, named)) File "/usr/local/django_projects/podv3/pod/live/apps.py", line 35, in save_previous_data c.execute("SELECT id, start_date, start_time, end_time FROM live_event") File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/utils.py", line 98, in execute return super().execute(sql, params) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/utils.py", line 66, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers return executor(sql, params, many, context) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/utils.py", line 90, in exit raise dj_exc_value.with_traceback(traceback) from exc_value File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/utils.py", line 82, in _execute return self.cursor.execute(sql) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 73, in execute return self.cursor.execute(query, args) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/MySQLdb/cursors.py", line 206, in execute res = self._query(query) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/MySQLdb/cursors.py", line 319, in _query db.query(q) File "/home/pod/.virtualenvs/django_pod3/lib/python3.9/site-packages/MySQLdb/connections.py", line 254, in query _mysql.connection.query(self, query) django.db.utils.ProgrammingError: (1146, "Table 'mydatabase.live_event' doesn't exist") make[1]: ** [Makefile:49 : migrate] Erreur 1 make[1] : on quitte le répertoire « /usr/local/django_projects/podv3 » make: [Makefile:32 : createDB] Erreur 2`

J'ai besoin de votre aide Merci D'avance.

ptitloup commented 1 year ago

Bonjour, Vous pouvez trouver de l'aide sur le canal Esup_pod du rocket chat d'Esup. N'hésitez pas à nous rejoindre ! Bien cordialement

Badatos commented 1 year ago

https://rocket.esup-portail.org/channel/esup_-_pod

mael-agro commented 1 year ago

Merci de votre réponse je vais aller demandé de l'aide sur le rocket chat

BHoury commented 1 year ago

Bonjour, j'ai rencontré la même erreur mydatabase.live_event' doesn't exist" durant ma maj vers pod v3. J'étais en pod 2.9.2 avec le live non activé sur mon pod. J'ai fait une maj en 2.9.3 avant la maj en 3.0.3 et cela a corrigé cette erreur.

Sur ma 2.9.2, pour mettre à jour en 2.9.3 (merci à Nicolas) git fetch git checkout tags/2.9.3

Bonne journée

ptitloup commented 1 year ago

Est-ce une nouvelle installation ou une mise à jour ?

mael-agro commented 1 year ago

C'est une nouvelle installation.

ptitloup commented 1 year ago

Alors c'est interessant et le fait de passer par la V2.9.3 ne va pas résoudre mais c'est interessant. Pouvez-vous nous dire quel OS, version de python, moteur de bdd ? pouvez vous ouvrir le fichier pod/live/apps.py et mettre en commentaire les lignes 28 et 29 et retenter voir si cela résoud le problème ? Merci

mael-agro commented 1 year ago

Je suis en version de python : python3 -V Python 3.9.2 python -V Python 2.7.18 Debian 11 mysql 10.5.15-MariaDB-0+deb11u1 j'ai commenté les lignes 28 et 29 ça a résoud le problème Merci.

ptitloup commented 1 year ago

Ok merci, on va chercher à comprendre pourquoi

ghost commented 1 year ago

Bonjour, après avoir commenté les deux lignes pour le fix de la table live.event, il y'a un autre soucis avec une colonne dupliquée 'content_en'. django.db.utils.OperationalError: (1060, "Duplicate column name 'content_en'")

Je voulais signaler cette erreur au cas ou je ne serais pas le seul dans ce cas. contexte: Redhat entreprise 8 python 3.8 BDD: 5.5.5-10.3.28-MariaDB

Cordialement,

ptitloup commented 1 year ago

Bonjour, Je pense que la première commande ayant échouée, il essaye de créer à novueau une table qui existe déjà. Il faut voir si en recommencant tout depuis le debut cela fonctionne. Bon courage

mattbild commented 1 year ago

@ptitloup c'est la méthode save_previous_data() dans le fichier pod/live/apps.py qui pose problème. Dans le cas d'une nouvelle installation la table 'live_event' n'est pas encore créée quand le pre_migrate est lancé

ptitloup commented 1 year ago

@mattbild je viens de proposer un hotfix (mais sur develop, me suis trompé) en replacant operationalError par Exception (L.39)... A voir si cela suffit :

    except Exception :  # OperationalError
Badatos commented 1 year ago

Lien vers le Hotfix en question : #698

ptitloup commented 1 year ago

Qui pourrait tester et me dire si cela fonctionne avec Mysql ? (ca fonctionne en sqlite)

mattbild commented 1 year ago

Je viens de tester en MySql, ça fonctionne

ptitloup commented 1 year ago

parfait merci bcp, je vais merger à ce moment là

ghost commented 1 year ago

Bonjour,

Apres avoir supprimé le projet et recloné ce matin, lors du migrate de "make createDB", ce problème se produit:

django.db.utils.OperationalError: (1060, "Duplicate column name 'content_en'"). Je rappelle que ce problème ne survient pas avec une config sqlite et que je suis sous RedHat 8 et MariaDB.

Merci beaucoup, bonne journée.

Badatos commented 1 year ago

Avez-vous restauré une sauvegarde de la base de donnée d'avant la tentative de migration ?

ghost commented 1 year ago

Non pas tout, avant de lancer la commande je drop ma database et je la recrée.

CartierPierre commented 1 year ago

Up de ce probleme, je passe d'un pod 2.9.3 en 3.2, le make migration avec des datas deja en base ne se passe pas bien. Duplicate column name 'content_en'.
Aucun probleme par lancer l'appli vierge par contre. MariaDB 10.5.19 mysqlclient==2.1.1 Debian 11 Python 3.9.2