Web2py 错误”<class 'sqlite3.OperationalError'> 没有这样的 table:应用程序
Web2py Error" <class 'sqlite3.OperationalError'> no such table: application
当我尝试向 Web2py 数据库添加新记录时出现此错误。我已经从另一台机器移动了存储库,但我的所有文件都是相同的。
我之前的数据库DAL连接参数如下:
from gluon.contrib.appconfig import AppConfig
myconf = AppConfig(reload=True)
if not request.env.web2py_runtime_gae:
db = DAL(myconf.get('db.'+myconf.get('db.mode')+'_uri'),
pool_size=myconf.get('db.pool_size'),
migrate=myconf.get('db.migrate'),
migrate_enabled=myconf.get('db.migrate_enabled'),
#fake_migrate_all=myconf.get('db.fake_migrate_all'),
fake_migrate_all=True,
check_reserved=['all'])
else:
db = DAL('google:datastore+ndb')
session.connect(request, response, db=db)
它给我 user_auth
not found 错误,所以我按照官方文档将其更改为:
from gluon.contrib.appconfig import AppConfig
myconf = AppConfig(reload=True)
if not request.env.web2py_runtime_gae:
db = DAL('sqlite://storage.sqlite', pool_size=1, check_reserved=['all'], migrate=False, fake_migrate_all=True)
else:
db = DAL('google:datastore+ndb')
它显示了 /database 和 "Database_Administration" 控制台中的所有 table 我尝试添加一条新记录但出现以下错误。
Web2py Error" <class 'sqlite3.OperationalError'> no such table: application
我的名为 "application" 的应用程序中没有 table,因此它必须与应用程序相关。请指教
您创建了一个全新的数据库,但是通过设置 fake_migrate_all=True
,您让 web2py 认为所有表都已创建,即使它们从未创建过。相反,您最初应该保留 migrate=True
(默认值),并且不要设置 fake_migrate_all
。在这种情况下,web2py 将在第一次请求时创建表(之后,您可以禁用迁移,直到您需要进行另一次更改)。
转到 "applications/yourappname/databases" 中的数据库文件夹。删除所有表,然后重新创建表。您一定是从某个地方复制了它,但无法加载所有表格。设置 migrate=True 和 fake_migrate_all=false。然后重新运行服务器并在 web2py 服务器面板中转到您的应用程序。 Select "Edit" 并转到管理面板上 "Models" 下的 "database administration"。您将在自己的机器上重新创建所有表。如果这不是您从其他来源复制的情况……仍然通过删除所有表来执行以下操作。你一定会搞定的 运行.
当我尝试向 Web2py 数据库添加新记录时出现此错误。我已经从另一台机器移动了存储库,但我的所有文件都是相同的。
我之前的数据库DAL连接参数如下:
from gluon.contrib.appconfig import AppConfig
myconf = AppConfig(reload=True)
if not request.env.web2py_runtime_gae:
db = DAL(myconf.get('db.'+myconf.get('db.mode')+'_uri'),
pool_size=myconf.get('db.pool_size'),
migrate=myconf.get('db.migrate'),
migrate_enabled=myconf.get('db.migrate_enabled'),
#fake_migrate_all=myconf.get('db.fake_migrate_all'),
fake_migrate_all=True,
check_reserved=['all'])
else:
db = DAL('google:datastore+ndb')
session.connect(request, response, db=db)
它给我 user_auth
not found 错误,所以我按照官方文档将其更改为:
from gluon.contrib.appconfig import AppConfig
myconf = AppConfig(reload=True)
if not request.env.web2py_runtime_gae:
db = DAL('sqlite://storage.sqlite', pool_size=1, check_reserved=['all'], migrate=False, fake_migrate_all=True)
else:
db = DAL('google:datastore+ndb')
它显示了 /database 和 "Database_Administration" 控制台中的所有 table 我尝试添加一条新记录但出现以下错误。
Web2py Error" <class 'sqlite3.OperationalError'> no such table: application
我的名为 "application" 的应用程序中没有 table,因此它必须与应用程序相关。请指教
您创建了一个全新的数据库,但是通过设置 fake_migrate_all=True
,您让 web2py 认为所有表都已创建,即使它们从未创建过。相反,您最初应该保留 migrate=True
(默认值),并且不要设置 fake_migrate_all
。在这种情况下,web2py 将在第一次请求时创建表(之后,您可以禁用迁移,直到您需要进行另一次更改)。
转到 "applications/yourappname/databases" 中的数据库文件夹。删除所有表,然后重新创建表。您一定是从某个地方复制了它,但无法加载所有表格。设置 migrate=True 和 fake_migrate_all=false。然后重新运行服务器并在 web2py 服务器面板中转到您的应用程序。 Select "Edit" 并转到管理面板上 "Models" 下的 "database administration"。您将在自己的机器上重新创建所有表。如果这不是您从其他来源复制的情况……仍然通过删除所有表来执行以下操作。你一定会搞定的 运行.