[英]How to create a db file in sqlite3 using a schema file from within python
我有一個模式文件myschema.sql
和一個數據庫文件mydatabase.db
在python中使用sqlite3
(特別是python 2.7)我想在我的數據庫中生成這個模式。
我知道通過命令行可以執行以下操作
sqlite3 mydatabase.db < myschema.sql
或者我可以執行以下操作,但這可能不適用於所有系統:
import os
os.popen("sqlite3 mydatabase.db < myschema.sql")
這不是我所追求的,因為它可能在某些平台上不起作用。
我還想避免這樣的事情:
import sqlite3
schema_str = open("myschema.sql","r").read()
connection = sqlite3.connect("mydatabase.db")
cur = connection.cursor()
list_of_insertions = map(lambda x: x.lstrip().replace("\n"," "),
schema.split(";"))
map(cur.execute, list_of_insertions)
connection.commit()
所以解析文件並單獨創建表並不是我想要的,我只是在尋找一個python-sqlite等效的命令行工具。
完全有一個輔助方法executescript
用於此目的:
with open('myschema.sql') as fp:
cur.executescript(fp.read()) # or con.executescript
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.