Résumé des rapports d'erreurs lors de la migration de la base de données MySQL avec Flask

Résumé des rapports d'erreurs lors de la migration de la base de données MySQL avec Flask

错误一:ERROR:root:Error: Les migrations d'annuaire existent déjà

image-20220527162751919

  • La raison est la suivante : la commande python3 manage.py db init a déjà été exécutée une fois et le dossier migrations existe déjà. L'environnement de migration ne doit être créé qu'une seule fois et n'a pas besoin d'être recréé ultérieurement.

Erreur 2 : une erreur s'est produite lors de la recréation du dossier de migrations après l'avoir accidentellement supprimé (impossible de localiser la révision identifiée par « xxx »)

La raison en est qu'après avoir établi une relation entre le backend et la base de données, les deux parties généreront respectivement une "interface". L'"interface" du backend est le fichier dans le dossier versions du dossier migrations ; l'"interface" du La base de données est la table "alembic_version". Après avoir supprimé les migrations, l'alembic_version n'a pas changé. Lorsque je crée une nouvelle migration, les deux « interfaces » ne peuvent pas correspondre, une erreur sera donc signalée. La solution la plus simple à cette erreur consiste donc à supprimer la table alambic_version dans la base de données, puis vous pourrez continuer les opérations suivantes.

Troisième erreur : lors de l'exécution de python3 manage.py db migrate,

image-20220527163124721

  • La raison en est que la classe de modèle n'est pas importée dans le projet et que le modèle correspondant ne peut pas être lu lors de la migration. Solution:

Ma classe de modèle est définie dans models.py et le projet est manage.py, je n'ai donc besoin que d'écrire à partir de modèles d'importation d'informations dans manage,py.

Erreur :AttributeError : le module « datetime » n'a pas d'attribut « maintenant »

  • La raison est que j'ai écrit import datetime lors de l'importation. Datetime.now est utilisé dans le code, mais il n'y a pas d'attribut now dans datetime. La solution est la suivante : from datetime import datetime (Voici la situation dans laquelle je ne connais pas grand chose le package datetime, import datetime et from datetime. import datetime est en fait différent)

Erreur AttributeError : l'objet 'fonction' n'a pas d'attribut '_set_parent_with_dispatch'

La raison est qu'il y a une erreur lors de la définition du champ content = db.Column(db.text, nullable=False) db.Text doit être en majuscule. Voici un résumé : dans Flask, la première lettre après db. doit être mise en majuscule. être en majuscule. Plusieurs fois, c'est à cause d'une confusion au sujet de la majuscule pendant une demi-journée

Erreur sqlalchemy.exc.NoReferencedTableError : La clé étrangère associée à la colonne "info_user_collection.news_id" n'a pas pu trouver la table "info_news,id" avec laquelle générer une clé étrangère pour cibler la colonne "Aucune".

La raison est très simple, c'est toujours de la négligence. Lors de la définition de la table d'association, db.ForeignKey('info_news, id') info_news, id devrait être info_news.id, mais pas.

L'article provient du CSDN. J'ai rencontré trois pièges lors de la première migration. Enregistrez-le pour une lecture facile la prochaine fois~~~~

Adresse d'origine : https://blog.csdn.net/wenpy/article/details/99829375

Je suppose que tu aimes

Origine blog.csdn.net/weixin_52173254/article/details/125008021
conseillé
Classement