Tag: postgresql

gem install pg –with-pg-config工作,捆绑失败

当我运行(以root身份) gem install pg -v '0.12.0' — –with-pg-config=/usr/pgsql-9.1/bin/pg_config 我得到以下输出: #-> gem instal pg -v '0.12.0' — –with-pg-config=/usr/pgsql-9.1/bin/pg_config Building native extensions. This could take a while… Successfully installed pg-0.12.0 1 gem installed Installing ri documentation for pg-0.12.0… Installing RDoc documentation for pg-0.12.0… #-> 当我运行软件包安装时: Installing pg (0.12.0) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem […]

使用Django的ORM作为独立的

可能重复: 只使用Django的一些部分? 只使用Django的数据库部分 我想单独使用Django ORM。 尽pipe在谷歌search了一个小时,我仍然留下了几个问题: 是否需要我使用setting.py,/ myApp /目录和modules.py文件来设置我的Python项目? 我可以创build一个新的models.py并运行syncdb以自动设置表和关系,还是只能使用现有的Django项目中的模型? 似乎有很多关于PYTHONPATH的问题。 如果你不打电话给现有的模型,这是需要的? 我猜最简单的事情是让别人发布一个基本的模板或stream程,澄清文件的组织结构,例如: db/ __init__.py settings.py myScript.py orm/ __init__.py models.py 基本要领: # settings.py from django.conf import settings settings.configure( DATABASE_ENGINE = "postgresql_psycopg2", DATABASE_HOST = "localhost", DATABASE_NAME = "dbName", DATABASE_USER = "user", DATABASE_PASSWORD = "pass", DATABASE_PORT = "5432" ) # orm/models.py # … # myScript.py # import […]

我忘记了我在postgres安装期间input的密码

我忘了或错误(在安装过程中)将密码input到Postgres的默认用户。 我似乎无法运行它,我得到以下错误: psql: FATAL: password authentication failed for user "hisham" hisham-agil: hisham$ psql 有无论如何重置密码,或者如何创build一个超级用户权限的新用户? 我是Postgres的新手,只是第一次安装它。 我正在尝试使用它与Rails和我正在运行的Mac OS X狮子。

psql:无法连接到服务器:没有这样的文件或目录(Mac OS X)

重新启动我的Mac后,我得到了可怕的Postgres错误: psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"? 发生这种情况的原因是因为我的MacBook完全冻结,由于一个无关的问题,我不得不使用电源button进行硬重启。 重新启动后,我无法启动Postgres,因为这个错误。

如何在PostgreSQL中设置自动增量主键?

我在PostgreSQL有22列的表,我想添加一个自动增量主键。 我试图创build一个名为BIGSERIALtypes的id列,但是pgadmin回应了一个错误: ERROR: sequence must have same owner as table it is linked to. 有谁知道如何解决这个问题? 如何在PostgreSQL中添加一个自动递增的主键而不重新重新创build表?

如何彻底清除并重新安装Ubuntu上的postgresql?

不知何故,我已经设法完全在Ubuntu业力上安装postgresql。 我想从头开始,但是当我使用apt-get“清除”软件包时,它仍然留下痕迹,使得重新安assembly置无法正常运行。 完成之后: apt-get purge postgresql apt-get install postgresql 它说 Setting up postgresql-8.4 (8.4.3-0ubuntu9.10.1) … Configuring already existing cluster (configuration: /etc/postgresql/8.4/main, data: /var/lib/postgresql/8.4/main, owner: 108:112) Error: move_conffile: required configuration file /var/lib/postgresql/8.4/main/postgresql.conf does not exist Error: could not create default cluster. Please create it manually with pg_createcluster 8.4 main –start or a similar command (see 'man […]

来自pg_views查询的不完整信息

我在我的数据库( PostgreSQL )有一个视图,我想看看它的代码。 我写了这个查询: select definition from pg_views where viewname='x' 这在大部分时间是有效的,但是在一些select代码很长的时候,我得到了一些意见(…) 例如,这是查询的结果之一,它显示(…) : " SELECT f.selectid, a.clientid, a.orderid, a.clientname, c.part, c.product, c.okey, e.contry, d.city, ( CASE WHEN (b.dateofissue IS NULL) THEN CASE (…)" 这只是代码的一部分…为什么它不显示我的整个代码?

IMMUTABLE,STABLE和VOLATILE关键字如何影响函数的行为?

我们写了一个函数get_timestamp()定义为 CREATE OR REPLACE FUNCTION get_timestamp() RETURNS integer AS $$ SELECT (FLOOR(EXTRACT(EPOCH FROM clock_timestamp()) * 10) – 13885344000)::int; $$ LANGUAGE SQL; 这用于INSERT和UPDATE在数据库logging的创build和修改字段中input或编辑一个值。 但是,我们发现当连续添加或更新logging时,它将返回相同的值。 在检查pgAdmin III中的函数时,我们注意到在运行SQL来构build函数时,在LANGUAGE SQL语句之后注入了关键字IMMUTABLE。 该文档指出,默认是VOLATILE(如果没有这些出现,VOLATILE是默认假设),所以我不知道为什么注入IMMUTABLE,但是,将其更改为STABLE已解决重复值的问题。 注: 正如在接受的答案中所述,IMMUTABLE不会被pgAdmin或Postgres添加到函数中,而且必须在开发过程中添加。 我猜测发生了什么是这个函数正在被评估和结果被caching优化,因为它被标记为IMMUTABLE指示Postgres引擎返回值不应该改变给定相同(空)参数列表。 但是,如果不在触发器中使用,则直接在INSERT语句中使用时,函数将在返回相同的值之前返回一个不同的值FIVE次。 这是由于一些优化algorithm,如“如果一个IMMUTABLE函数在会话中多使用5次,caching未来调用结果”? 任何关于如何在Postgres函数中使用这些关键字的澄清,将不胜感激。 对于我们来说,STABLE是正确的select,因为我们在触发器中使用了这个函数,或者还有更多要考虑的地方,例如文档说: (对于希望查询由当前命令修改的行的AFTER触发器是不合适的。) 但我为什么不清楚。

如何在Rails的WHERE子句中使用ANY而不是IN?

我曾经有一个像这样的查询: MyModel.where(id: ids) 其中生成sql查询如下所示: SELECT "my_models".* FROM "my_models" WHERE "my_models"."id" IN (1, 28, 7, 8, 12) 现在我想改变这个使用ANY而不是IN 。 我创build了这个: MyModel.where("id = ANY(VALUES(#{ids.join '),('}))" 现在,当我使用空数组ids = []我得到以下错误: MyModel Load (53.0ms) SELECT "my_models".* FROM "my_models" WHERE (id = ANY(VALUES())) ActiveRecord::JDBCError: org.postgresql.util.PSQLException: ERROR: syntax error at or near ")" ActiveRecord::StatementInvalid: ActiveRecord::JDBCError: org.postgresql.util.PSQLException: ERROR: syntax error at or near […]

对一组列的NOT NULL约束

我在Postgres中有一个表,它的email列目前有一个NOT NULL约束。 该表还具有可选的phone列。 我希望系统接受一些没有emaillogging,但只有当这些logging有NOT NULL phone 。 换句话说,我需要一个NOT NULL数据库约束,以便CREATE或UPDATE查询在没有任何错误的情况下成功,如果其中一个或两个email或phone字段都存在。 进一步扩展上述内容,是否有可能在Postgres中指定一组列名,其中一个或多个应该为NOT NULL ,以便成功更新或创buildlogging?