簡體   English   中英

如何使用python中的模式文件在sqlite3中創建db文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM