我正在尝试使用psycopg更改表格中的id字段序列。这在我的本地服务器上运行正常,但不适用于生产。我没有得到例外,序列只是没有重新启动。
def alter_sequence(last_id):
try:
dbname = settings.DATABASES['default']['NAME']
user = settings.DATABASES['default']['USER']
host = settings.DATABASES['default']['HOST']
password = settings.DATABASES['default']['PASSWORD']
port = settings.DATABASES['default']['PORT']
connection = psycopg2.connect(
dbname=dbname,
user=user,
password=password,
host=host,
port=port,
)
cursor = connection.cursor()
cursor.execute('ALTER SEQUENCE "gs_requests_id_seq" RESTART WITH {}'.format(last_id))
connection.close()
except Exception as e:
print(e)
pass
我仔细检查了数据库设置 - 它是正确的。由django ORM使用此设置执行的其他数据库操作可以正常工作。
我认为,这不是关于我的项目设置的信息,但不知道我需要指定哪些信息。我在本地计算机上有postgres 9.6,在生产时有10.1。
答案 0 :(得分:1)
我找到了问题的根源。我没有承诺:
connection.commit()
答案 1 :(得分:0)
cursor.execute('ALTER SEQUENCE gs_requests_id_seq RESTART WITH {};'.format(last_id))
试试这个!!它会对我有用!