Есть база postgres. Мне присылают скрипт вот такого плана
\ir 'drop_schema.sql' \ir '../v0.0.1/install.sql' \ir '../v0.0.2/install.sql' \ir '../v0.3.0/install.sql' \ir '../v0.4.0/install.sql' \ir '../v0.5.0/install.sql' \ir '../v0.5.1/install.sql' \ir '../v0.6.0/install.sql' \ir '../v0.6.1/install.sql' \ir '../v0.7.0/install.sql' \ir '../v0.8.0/install.sql' \ir '../v0.9.0/install.sql' \ir '../v0.9.1/install.sql' \ir '../v0.9.2/install.sql' \ir '../v0.9.3/install.sql' \ir '../v0.9.4/install.sql' \ir '../v0.9.5/install.sql' \ir '../v0.9.6/install.sql' \ir '../v0.9.7/install.sql' \ir '../v1.0/install.sql' \ir 'init_data.sql'
Как мне его корректно запустить в контексте psycopg2?
Мой вариант :
class Sql_Import: def __init__(self, name=Config.database['user'], db=Config.database['database'], init_sql=Config.database['init_sql'], home=Config.path['init_sql_home'], ): self.name=name self.db=db self.init_sql=init_sql self.home=home def load_init_sql(self): self.instructions='' with open('{0}{1}'.format(self.home,self.init_sql),'r') as f: for line in f: #self.instructions.append(line.rstrip('\n')) self.instructions+=line print self.instructions return self.instructions def update_db(self): self.exceptions='' self.instructions=self.load_init_sql() conn=psycopg2.connect(database=self.db,user=self.name) cur=conn.cursor() #for command in self.instructions: try: cur.execute(self.instructions) except psycopg2.Error, e: self.exceptions+=(e.pgerror+'\n') pass cur.close() conn.close() print(self.exceptions) return self.exceptions
Вычитываю файл со скриптом, передаю в cur.execute(). Но вылетает исключение и ошибка такого плана:
ОШИБКА: ошибка синтаксиса (примерное положение: "\") LINE 1: \ir 'drop_schema.sql'
Как скормить скрипт, отловив исключения?