lin*_*ndy 22 python postgresql schema psycopg2
我有一个存储在.sql文件中的PostgreSQL架构.它看起来像:
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
facebook_id TEXT NOT NULL,
name TEXT NOT NULL,
access_token TEXT,
created INTEGER NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
连接数据库后如何运行此模式?
我现有的Python代码适用于SQLite数据库:
# Create database connection
self.connection = sqlite3.connect("example.db")
# Run database schema
with self.connection as cursor:
cursor.executescript(open("schema.sql", "r").read())
Run Code Online (Sandbox Code Playgroud)
但是psycopg2 executescript在光标上没有方法.那么,我怎样才能做到这一点?
Cra*_*ger 48
你可以使用execute:
with self.connection as cursor:
cursor.execute(open("schema.sql", "r").read())
Run Code Online (Sandbox Code Playgroud)
虽然您可能希望首先将psycopg2设置为autocommit模式,但您可以使用脚本自己的事务管理.
如果psycopg2提供了一个更智能的模式,它会在一次声明中读取文件并将其发送到数据库,这是很好的,但据我所知,目前还没有这样的模式.当面对$$引用(及其$delimiter$变体,其中分隔符可以是任何标识符)standard_conforming_strings,E''字符串,嵌套函数体等时,它需要一个相当可靠的解析器来正确地执行它.
请注意,这不适用于:
psql反斜杠命令的任何内容...因此不适用于转储 pg_dump
| 归档时间: |
|
| 查看次数: |
24981 次 |
| 最近记录: |