Resumen de errores de la base de datos MySQL de migración de Flask

Resumen de errores de la base de datos MySQL de migración de Flask

错误一:ERROR:root:Error: las migraciones de directorio ya existen

imagen-20220527162751919

  • El motivo es: el comando python3 enable.py db init se ejecutó una vez antes y la carpeta de migraciones ya existe. El entorno de migración solo debe crearse una vez y no es necesario volver a crearlo más adelante.

Error 2: se produjo un error al recrear la carpeta de migraciones después de eliminarla accidentalmente (no se puede ubicar la revisión identificada por 'xxx')

La razón es que después de establecer una relación entre el backend y la base de datos, ambas partes generarán una "interfaz" respectivamente. La "interfaz" del backend es el archivo en la carpeta de versiones en la carpeta de migraciones; la "interfaz" del backend es el archivo en la carpeta de versiones en la carpeta de migraciones; La base de datos es la tabla "alembic_version". Después de eliminar las migraciones, alembic_version no cambió. Cuando creo una nueva migración, las dos "interfaces" no pueden coincidir, por lo que se informará un error. Entonces, la solución más simple a este error es eliminar la tabla alembic_version en la base de datos y luego podrá continuar con las operaciones posteriores.

Error tres: al ejecutar python3 enable.py db migrar,

imagen-20220527163124721

  • El motivo es que la clase de modelo no se importa al proyecto y el modelo correspondiente no se puede leer durante la migración. Solución:

Mi clase de modelo está definida en modelos.py y el proyecto es administrar.py, por lo que solo necesito escribir desde modelos de importación de información en administrar,py.

Nota:AttributeError: el módulo 'fecha y hora' no tiene el atributo 'ahora'

  • La razón es que escribí import datetime al importar. Datetime.now se usa en el código, pero no hay ningún atributo now en datetime. La solución es: from datetime import datetime (Aquí está la situación en la que no sé mucho sobre el paquete datetime, import datetime y from datetime.import datetime es en realidad diferente)

Nota: AttributeError: el objeto 'función' no tiene el atributo '_set_parent_with_dispatch'

La razón es que hay un error al definir el campo content = db.Column(db.text, nullable=False) db.Text necesita estar en mayúscula. Aquí hay un resumen: en Flask, la primera letra después de db. necesita estar en mayúsculas. Muchas veces es por una confusión sobre la capitalización durante medio día.

Nota: sqlalchemy.exc.NoReferencedTableError: La clave externa asociada con la columna 'info_user_collection.news_id' no pudo encontrar la tabla 'info_news,id' con la cual generar una clave externa para la columna de destino 'Ninguno'

La razón es muy simple, sigue siendo un descuido: al definir la tabla de asociación, db.ForeignKey ('info_news, id') info_news, la identificación debe ser info_news.id, pero no.

El artículo proviene de CSDN. Encontré tres obstáculos durante la primera migración. Guárdelo para leerlo fácilmente la próxima vez ~~~~

Dirección original: https://blog.csdn.net/wenpy/article/details/99829375

Supongo que te gusta

Origin blog.csdn.net/weixin_52173254/article/details/125008021
Recomendado
Clasificación