相关疑难解决方法(0)

Postgres手动改变序列

我正在尝试将序列设置为特定值.

SELECT setval('payments_id_seq'), 21, true
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误:

ERROR: function setval(unknown) does not exist

使用ALTER SEQUENCE似乎也不起作用?

ALTER SEQUENCE payments_id_seq LASTVALUE 22
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

参考:https://www.postgresql.org/docs/current/static/functions-sequence.html

postgresql database-sequence

149
推荐指数
5
解决办法
14万
查看次数

IntegrityError重复键值违反唯一约束 - django/postgres

关于我之前问过的一个问题,我正在跟进,我试图寻求从一个愚蠢/写得不好的mysql查询到postgresql的转换.我相信我成功了.无论如何,我正在使用手动从mysql数据库移动到postgres数据库的数据.我正在使用看起来像这样的查询:

  """
  UPDATE krypdos_coderound cru

  set is_correct = case 
      when t.kv_values1 = t.kv_values2 then True 
      else False 
      end

  from 

  (select cr.id, 
    array_agg(
    case when kv1.code_round_id = cr.id 
    then kv1.option_id 
    else null end 
    ) as kv_values1,

    array_agg(
    case when kv2.code_round_id = cr_m.id 
    then kv2.option_id 
    else null end 
    ) as kv_values2

    from krypdos_coderound cr
     join krypdos_value kv1 on kv1.code_round_id = cr.id
     join krypdos_coderound cr_m 
       on cr_m.object_id=cr.object_id 
       and cr_m.content_type_id =cr.content_type_id 
     join krypdos_value kv2 on kv2.code_round_id = cr_m.id

   WHERE
     cr.is_master= …
Run Code Online (Sandbox Code Playgroud)

django postgresql database-integrity duplicates unique-constraint

55
推荐指数
6
解决办法
4万
查看次数

创建新内容类型时出错.在尝试单独迁移应用之前,请确保迁移了contenttypes

我正试图从中迁移Django 1.6Django 1.8.我South用于管理migrationsDjango 1.6.我已经成功创建了新的迁移文件python manage.py makemigrations.在运行时python manage.py migrate --fake-initial,我收到此错误

 Traceback (most recent call last):
  File "manage.py", line 39, in <module>
    execute_from_command_line(sys.argv)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-    packages/django/core/management/__init__.py", line 338, in   execute_from_command_line
    utility.execute()
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-  packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 225, in handle
    emit_post_migrate_signal(created_models, self.verbosity, self.interactive, connection.alias)
  File "/home/jonty/.virtualenvs/squadrun/local/lib/python2.7/site-packages/django/core/management/sql.py", line …
Run Code Online (Sandbox Code Playgroud)

migration django django-south django-1.8

35
推荐指数
3
解决办法
2万
查看次数

自动增量表列

使用Postgres,我试图AUTO_INCREMENT在SQL中自动编号我的主键.但是,它给了我一个错误.

CREATE TABLE Staff   (
  ID        INTEGER NOT NULL AUTO_INCREMENT,
  Name      VARCHAR(40) NOT NULL,
  PRIMARY KEY (ID)
);
Run Code Online (Sandbox Code Playgroud)

错误:

********** Error **********
ERROR: syntax error at or near "AUTO_INCREMENT"
SQL state: 42601
Character: 63
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

sql postgresql types auto-increment database-table

29
推荐指数
1
解决办法
5万
查看次数

在Heroku上Postgres并将单个表转储到转储文件

我在Heroku上使用Postgres,我需要从生产数据库中转储一个表并将其转储到我的暂存数据库中.我安装了heroku工具带,但不知道如何转储单个db表以导入到我的staging db中.

postgresql heroku heroku-toolbelt

29
推荐指数
1
解决办法
9028
查看次数

ManyToMany关系的问题在保存后不会立即更新

我遇到了ManytoMany关系的问题,当我保存它时(通过管理员)并没有在模型中更新,并尝试在附加到post_save信号的函数中或在save_model关联的函数内使用新值AdminModel.我试图通过使用带有id的get函数重新加载这些函数中的对象但它仍然具有旧值.

这是交易问题吗?交易结束时是否抛出信号?

谢谢,

django django-signals django-orm django-admin

22
推荐指数
3
解决办法
1万
查看次数

重启,以便nextval是下一个未使用的id

我有一个脚本将表数据从一个DB复制到另一个DB,但ID列由序列支持,因此当新记录插入目标表时,nextval(seq)返回错误的值.

我需要更新序列,以便从下一个可用ID开始.

我想做的事情如下:

ALTER SEQUENCE seq_id RESTART WITH
    (SELECT MAX(id) FROM tbl);
Run Code Online (Sandbox Code Playgroud)

但是上面会产生语法错误.

任何人都可以提出替代方法吗?

sql postgresql sequence

12
推荐指数
1
解决办法
8142
查看次数

在PostgreSQL中导入数据后,重复键值违反了唯一约束

我最近将我的rails应用程序迁移到PostgreSQL,以便利用全文搜索.

由于迁移与迁移到新的webhost同时发生,迁移步骤如下:

  1. 使用适当的database.yml文件部署应用程序和db:create/db:schema:在新服务器上加载
  2. mysqldump数据仅来自现有的MySQL生产数据库
  3. 将数据导入PostgreSQL数据库

应用程序正在成功运行,但在尝试向数据库添加新内容时出现问题.例如,当我运行rake任务来更新我的twitter feed时:

PG::Error: ERROR:  duplicate key value violates unique constraint "twitter_feeds_pkey" DETAIL:  Key (id)=(3) already exists.
Run Code Online (Sandbox Code Playgroud)

这也适用于所有其他模型,创建新文章,用户等.在开发中我可以看到发布插入语句n + 1次将成功保存记录而不会出错.

我的问题是:如何告诉PostgreSQL开始按现有数据顺序添加索引?

我已经阅读了这个REINDEX页面,但我认为这不是我正在寻找的操作.

postgresql ruby-on-rails-3

12
推荐指数
3
解决办法
5163
查看次数

使用Django admin时,ManyToMany字段未保存

我遇到了一个奇怪的问题,我希望这里的某些人能够对此有所了解.

我正在重写模型的save()方法,以便在运行super()之后向ManyToMany字段添加一些值.我的问题是,当我在Django admin中保存时,值似乎被添加到关系中,但然后再次为空.

但是,如果我这样做,manage.py shell它没有问题.

我已经在那里放了两个打印语句,无论我是通过Django admin还是通过shell运行它,它们都会产生完全相同的输出.

class Store(models.Model):
    holidays = models.ManyToManyField(StoreHoliday, blank=True)
    copy_holidays_from = models.ForeignKey('Store', blank=True, null=True)

    def save(self):
        print '====  BEFORE SAVE:', self.holidays.all()
        super(Store, self).save()
        self.copy_holidays()
        print '====  AFTER SAVE:', self.holidays.all()

    def copy_holidays(self):
        if self.pk and self.copy_holidays_from:
            self.holidays.clear()
            for h in self.copy_holidays_from.holidays.all():
                self.holidays.add( h )
Run Code Online (Sandbox Code Playgroud)

这是print声明的输出:

====  BEFORE SAVE: []
====  AFTER SAVE: [<StoreHoliday: 10 Mar 2010, Chuck Norris birthday (Closed)>]
Run Code Online (Sandbox Code Playgroud)

有没有人对可能导致这种情况的原因有任何建议?

编辑:当通过管理界面保存时,Django似乎丢弃了save()中m2m关系的所有手动更改.这与处理表单的方式有关吗?

python django django-orm m2m

11
推荐指数
1
解决办法
5441
查看次数

唯一违规:7错误:重复键值违反唯一约束"users_pkey"

我在Laravel应用程序中使用psql.我正在尝试创建我的用户,并且我一直收到此错误

唯一违规:7错误:重复键值违反唯一约束"users_pkey"


这是我为存储用户所做的工作

$user = User::where('account_id','=',$id)->first();
$user->email = $account->email_address;
$user->fb_email = '';
$user->tw_email = '';
$user->fb_access_token = '';
$user->fb_profile_id = '';
$user->fb_page_id = '';
$user->fb_username = '';
$user->save();
Run Code Online (Sandbox Code Playgroud)

这是我创建用户表的方法

CREATE TABLE "users" (
    "id" serial NOT NULL ,
    "account_id" varchar(255) NOT NULL ,
    "email" varchar(255) NOT NULL ,
    "fb_email" varchar(255) NOT NULL ,
    "tw_email" varchar(255) NOT NULL ,
    "created_at" timestamp(0) without time zone,
    "updated_at" timestamp(0) without time zone,
    "fb_access_token" varchar(255) NOT NULL ,
    "fb_profile_id" varchar(255) NOT NULL ,
    "fb_page_id" varchar(255) …
Run Code Online (Sandbox Code Playgroud)

php mysql postgresql laravel laravel-5

11
推荐指数
2
解决办法
1万
查看次数