- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 django
以及模块和网络应用程序的初学者。
这是回溯和数据:
OperationalError at /admin/learning_logs/example/
no such column: learning_logs_example.entry_id
Request Method: GET
Request URL: http://localhost:8000/admin/learning_logs/example/
Django Version: 1.11.7
Exception Type: OperationalError
Exception Value:
no such column: learning_logs_example.entry_id
Exception Location: C:\Users\Bryan\Desktop\LEARNI~1\ll_env\lib\site-
packages\django\db\backends\sqlite3\base.py in execute, line 328
Python Executable: C:\Users\Bryan\Desktop\LEARNI~1\ll_env\Scripts\python.exe
Python Version: 3.6.2
Python Path:
['C:\\Users\\Bryan\\Desktop\\learning log',
'C:\\Users\\Bryan\\Desktop\\LEARNI~1\\ll_env\\Scripts\\python36.zip',
'C:\\Users\\Bryan\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs',
'C:\\Users\\Bryan\\AppData\\Local\\Programs\\Python\\Python36-32\\lib',
'C:\\Users\\Bryan\\AppData\\Local\\Programs\\Python\\Python36-32',
'C:\\Users\\Bryan\\Desktop\\LEARNI~1\\ll_env',
'C:\\Users\\Bryan\\Desktop\\LEARNI~1\\ll_env\\lib\\site-packages']
Server time: Sat, 18 Nov 2017 18:36:14 +0000
出于某种原因,当我单击下面显示“示例”的链接时,
它是这样说的
我尝试迁移,但它说
(venv) C:\...\learning log>python manage.py makemigrations
No changes detected
(venv) C:\...\learning log>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
No migrations to apply.
我是如何做到这一点的?
首先,我添加了带有 TextField
的 example
条目/表单,然后我添加了一个“示例”。我添加了一个 ForeignKey
对象,参数为 Entry
。
我回去编辑我的“示例”,但异常出现了。
编辑:当我运行 python manage.py showmigrations learning_logs
时,janos 想要输出,所以这里是:
admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
auth
[X] 001_initial
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
learning_logs
[X] 0001_initial
sessions
[X] 0001_initial
希望对您有所帮助。
我重新创建了异常页面 here
最佳答案
正如错误信息所说,表 learning_logs_example
中的列 entry_id
不存在。这是不正常的。如果架构迁移已正确创建并正确应用,那么这不应该发生。
此外,看看这个:
(venv) C:\...\learning log>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
No migrations to apply.
Apply all migrations
行应该包含您的应用程序的名称。现有名称是标准的 Django 组件。您的应用名称可能是 learning_log
或类似名称。简而言之,您的应用似乎不存在迁移。
要调试它,首先检查您应用的 showmigrations
的输出:
./manage.py showmigrations learning_log
如果您没有收到错误,请将输出添加到您的问题中。
如果您收到错误 CommandError: No migrations present for: ...
,然后创建迁移:
./manage.py makemigrations learning_log
然后再次检查 showmigrations
的输出,并将输出添加到您的问题中。
如果输出看起来像这样:
learning_log
[X] 0001_initial
...
这意味着数据库有一些关于应用迁移的记录,事实上,Django 认为迁移已正确应用。(事实上他们不是,基于你的主要错误。)
根据我目前掌握的信息,您的数据库似乎与模型不同步:某些字段已添加到模型中但未应用于数据库,并且迁移未正确保存。
一个简单的解决方案是手动添加缺失的列。您可以通过查看迁移文件找到正确的架构:
./manage.py sqlmigrate learning_log 0001
从这里你应该能够找到丢失的 entry_id
字段是如何声明的,然后使用查询 ALTER TABLE learning_logs_example ADD COLUMN entry_id ...
将其手动添加到表中,其中其余参数取决于 sqlmigrate
输出中列的定义。
如果问题只是缺少一个或几个字段,那么这个解决方法可能足以让某些东西起作用。(如果没有,则跳到下一部分。)你不应该就此止步,因为模型也可能需要一些索引。您可以研究 sqlmigrate
的进一步输出并重新创建依赖于 learning_logs_example
的所有其他对象,比如索引,触发器。但更简洁的解决方案是重新创建应用程序的所有表,按照以下步骤操作:
./manage.py dumpdata learning_log > learning_log.json
./manage.py migrate --fake learning_log zero; ./manage.py 迁移学习日志
./manage.py loaddata learning_log
如果手动添加列的解决方法不起作用(你遇到了更复杂的问题),那么你有两个选择:
如果您不能承受丢失数据的后果,那么您将不得不手动追踪并解决每一个问题。完成后,您应该按照我在上一节中解释的那样转储和恢复应用程序的表
如果丢失数据没有关系,那么您可以按照上一节中的过程进行操作,而无需进行转储和恢复步骤。也就是说,删除并重新创建应用程序的表
最后,为了避免进一步的问题,您需要确保所有迁移都与模型同步,并正确添加到版本控制中。一个很好的测试方法是将 Django 项目安装在计算机上的不同文件夹中。如果不顺利的话那么设置还是不好。
如果以上任何内容需要更多说明,请告诉我。
关于python - OperationalError 在/admin/learning_logs/example/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369811/
我有一个 Pandas 数据框,如下所示。 activity User_Id \ 0 VIEWED MOVIE 158d292ec18a49 1 VIEWED
我正在尝试在运行 12.04 的 Ubuntu 机器上使用 mysql 创建一个远程数据库。 它有一个启用了远程登录的根用户。我已经启动了服务器。 输出 sudo netstat -tap | gre
这个问题在这里已经有了答案: sqlalchemy.exc.OperationalError: (OperationalError) unable to open database file Non
我正在尝试使用 SQLAlchemy(使用 Flask)创建模型,但我无法在互联网上的任何地方找到解决我的问题的方法。 它给我的错误是 sqlalchemy.exc.OperationalError:
我收到以下错误: sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: s_amodel [SQL: '
我搜索了很多这个错误,但我只找到了一些背后有更多信息的信息,比如“FATAL: ...”。我的没有。它只是说 sqlalchemy.exc.OperationalError: (psycopg2.Op
我在使用 flask_alchemy 进行单元测试时遇到问题 生产环境我用的是postgresql数据库 "SQLALCHEMY_DATABASE_URI": "postgresql://login:
运行.py文件: from flaskblog import app, db if __name__ == '__main__': db.create_all() app.run(de
我已在本地成功运行我的 Flask 应用程序,但是当我将其部署到我的产品环境时,出现此错误: [2019-08-26 00:15:36,229] ERROR in app: Exception on
服务 我的服务基于flask + postgresql + gunicorn + supervisor + nginx docker部署的时候,运行服务后,再访问api,有时候会报错,有时候还可以。
我定义了表名 users_table 并运行 db.create_all() 来创建表,但是在提交更新用户信息时出现错误“no such table user_table”。 我如何测试: (unde
我目前正在第一次编写一些 Airflow DAG 完整性测试。我遇到了一个错误,我的一些运算符(operator)/任务引用了 Airflow 变量,例如: test_var= Variable.ge
我正在尝试通过 flask 中的 sqlalchemy 执行原始 sql 查询。在 psql 中运行时,原始 sql 查询会给出正确的输出。 postgres=# SELECT distin
import requests import time import csv import ast import sys import mysql.connector config = { 'user
我用了很长时间的Postgres 14和PGAdmin4 6.7,一切都很好。这是在Windows11上。昨天我试着升级到Postgres 15和PGAdmin4 7.6,但这就是它失败的地方!。Po
错误: sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: password authentication fai
我正在使用 Python、Flask 和 SQLAlchemy。我在构建应用程序时一直使用本地数据库,并且它在以下代码中运行良好: from flask import Flask from flask
我正在尝试使用 mysql 来运行 python-flask Web 应用程序。但是,我在主应用程序文件中连接到数据库,每次尝试将数据输入数据库(即注册客户)时,我都会收到错误消息: Tracebac
我想从当前数据库切换到另一个 MySQL 数据库(从后台)。所以,我想这与我设置数据库设置的方式有关。 engine = create_engine('mysql+mysqldb://user:pw@
我在 Google AppEngine 上使用带有 Flask 的应用程序,我使用此常量 SQLALCHEMY_DATABASE_URI = 'mysql://user:pass@ip_address
我是一名优秀的程序员,十分优秀!