修改Django AutoField的起始值

Dmi*_*nko 2 django postgresql auto-increment django-south

我有和现有的数据库,我已经用SQLAlchemy迁移到一个新的PostgreSQL数据库.

我用与以前相同的值移动了所有主键.现在我有填充数据的表,但相关的序列从1开始.我有pk值存储1到2000.

现在,当我尝试用Django保存一些东西时,我有了

重复键值违反了与主键有关的唯一约束.

如何修改序列起始值或逃避这种情况?
我目前的解决方案是:

conn = psycopg2.connect(...)
    for table_name in table_names:

        cursor = conn.cursor()
        cursor.execute("""
        SELECT setval('%s_id_seq', (SELECT COALESCE(MAX(id),0)+1 FROM %s));
        """% (table_name, table_name))
Run Code Online (Sandbox Code Playgroud)

它对我有用,但我不喜欢它.

Erw*_*ter 7

在PostgreSQL中设置/重置序列的方法

(不一定max(id)).