sqlite 尝试跨会话使用持久数据

ukqbszuj  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(149)

我正在尝试访问保存在SQLite数据库文件中的持久数据,而不擦除它。我在没有Web2py的情况下启动了一个与Python的交互会话,并输入:

from pydal import DAL, Field

db = DAL('sqlite://storage.sqlite', folder='home/cryptoj/venv', auto_import=True)

db.define_table('persons', Field('name'))

现在我可以创建和保存表数据了。在db.commit()之后,表格被保存,我可以使用用于SQLite的DB浏览器来读取它。我可以从DB浏览器输入其他数据,也可以在交互式的Python会话中读取这些数据。
我关闭了终端和数据库浏览器。然后我打开数据库浏览器,数据都在那里。然而,当我查看上面的命令时,在一个新的会话中,db.define_table似乎正在删除存储在storage.sqlite中的数据。
在第二次打开新终端时,如果我没有再次打开define_table,则会出现错误,并且在交互会话中无法读取现有数据。

bqf10yzr

bqf10yzr1#

可能需要将选项migrate设置为False

self.db.define_table('persons', Field('name'), migrate=False)

相关问题