Tag: rails postgresql

Rails pg gem不兼容的库版本

当我尝试在开发模式下访问我的Ruby on Rails网站时,我收到以下“不兼容的库版本”错误。 incompatible library version – /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg_ext.so (LoadError) /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg.rb:4:in `require’ /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/pg-0.18.4/lib/pg.rb:4:in `’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `require’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:76:in `block (2 levels) in require’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `each’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:72:in `block in require’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `each’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler/runtime.rb:61:in `require’ /usr/local/rvm/gems/ruby-2.2.3/gems/bundler-1.10.6/lib/bundler.rb:134:in `require’ /var/www/vhosts/launch.site.com/httpdocs/config/application.rb:7:in `’ /var/www/vhosts/launch.site.com/httpdocs/config/environment.rb:2:in `require’ /var/www/vhosts/launch.site.com/httpdocs/config/environment.rb:2:in `’ config.ru:3:in `require’ config.ru:3:in `block in ‘ /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `instance_eval’ /var/www/vhosts/launch.site.com/httpdocs/vendor/bundle/ruby/2.2.0/gems/rack-1.6.4/lib/rack/builder.rb:55:in `initialize’ config.ru:1:in `new’ config.ru:1:in `’ /usr/share/passenger/helper-scripts/rack-preloader.rb:110:in `eval’ […]

rake db:创建失败,postgresql 8.4的身份validation问题

首先,请原谅我的完全无声。 我真的试图找到一个解决方案,但现在我陷入困境,完全无能为力。 我正在尝试在远程服务器上部署rails 3应用程序; 在我的本地VM上开发时,没有问题。 但现在,当我试图跑 rake db:create 它失败了,有错误(这里翻译,因为我是法国人): FATAL : password authentication failed for user <> 这是我的database.yml: login: &login adapter: postgresql username: mylogin password: mypassword host: localhost port: 5432 encoding: UTF8 development: <<: *login database: somesite_development test: <<: *login database: somesite_test production: <<: *login database: somesite_production 使用命令行工具“createuser”在postgre-side创建了用户“mylogin”。 它被授权创建dbs。 postgresql.conf配置服务器监听localhost。 我用pg_hba.conf尝试了很多东西,没有用 – 无论在127.0.0.1上用户“mylogin”使用的方法(ident,密码,md5),身份validation都失败了 – 尽管我从未遇到过连接/创建dbs的问题PSQL。 […]

Heroku上的Rails 3.1中的Postgres重音不敏感LIKE搜索

如何在Rails中修改搜索查询的where / like条件: find(:all, :conditions => [“lower(name) LIKE ?”, “%#{search.downcase}%”]) 无论重音如何,结果都匹配? (例如métro= metro)。 因为我使用的是utf8,所以我不能使用“to_ascii”。 生产正在Heroku上运行。

Rails:rake db:create:all(无法连接到服务器)

按照截屏videohttp://railscasts.com/episodes/342-migrating-to-postgresql?autoplay=true执行 “rake db:create:all”的步骤并获取错误: 无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/tmp/.s.PGSQL.5432”上的连接? 请参阅Rails上的问题:rake db:create:all无法连接到PostgreSQL数据库 但仍然无法解决它。 不确定是什么问题。 [database.yml的] development: adapter: postgresql encoding: unicode database: store_development pool: 5 username: amysukumunu password: test: adapter: postgresql encoding: unicode database: store_test pool: 5 username: amysukumunu password:

Ruby on Rails + PostgreSQL:自定义序列的使用

假设我有一个名为Transaction的模型,它具有:transaction_code属性。 我希望该属性自动填充可能与id不同的序列号(例如, id=1 Transaction可能具有transaction_code=1000 )。 我试图在postgres上创建一个序列,然后将transaction_code列的默认值作为该序列的nextval 。 问题是,如果我没有在RoR上为@transaction.transaction_code分配任何值,当我在RoR上发出@transaction.save时,它会尝试执行以下SQL: INSERT INTO transactions (transaction_code) VALUES (NULL); 这样做是在Transactions表上创建一个新行,其中transaction_code为NULL,而不是计算序列的nextval并将其插入相应的列。 因此,正如我所发现的,如果你为postgres指定NULL,它假定你真的想要在该列中插入NULL,无论它是否具有默认值(我来自ORACLE,它具有不同的行为)。 我对这方面的任何解决方案持开放态度,无论是在数据库上还是在RoR上: 要么有办法从ActiveRecord的save排除属性 或者有一种方法可以在插入触发器之前更改列的值 或者有一种方法可以在RoR中生成这些序列号 或任何其他方式,只要它的工作原理:-) 提前致谢。

在Rails <4中为Postgres JSON列设置默认值

所以我开始使用Postgres JSON数据类型,现在你可以用它做很多有趣的事情 。 在我的一个Rails应用程序中还没有Rails 4( 已经添加了对Postgres JSON的支持 ),我添加了一个这样的JSON列: create_table :foo do |t| t.column :bar, :json end 但我无法弄清楚如何为列设置默认值。 我尝试了所有变体,如{} , ‘{}’ , ‘{}’::json , ‘[]’::json等。但我在迁移运行时遇到错误或者它根本不起作用,这意味着迁移运行但是,当我创建一个新的Foo , bar是nil 。

如何将序列添加到迁移并在模型中使用它们?

我希望拥有一个普通主键的“ Customer ”模型和另一个存储自定义“客户编号”的列。 另外,我希望db处理默认的客户编号。 我认为,定义序列是最好的方法。 我使用PostgreSQL。 看看我的迁移: class CreateAccountsCustomers true t.integer :salutation, :limit => 1 t.string :cp_name_1 t.string :cp_name_2 t.string :cp_name_3 t.string :cp_name_4 t.string :name_first, :limit => 55 t.string :name_last, :limit => 55 t.timestamps end say “Adding NEXTVAL(‘customer_no_seq’) to column cust_id” execute “ALTER TABLE accounts_customers ALTER COLUMN customer_no SET DEFAULT NEXTVAL(‘customer_no_seq’);” end def down drop_table […]

Rails:rake db:create:all无法连接到PostgreSQL数据库

我正在尝试创建一个使用PostgreSQL的Rails应用程序。 这是对我所做的描述。 PostgreSQL设置: 我通过由Martin Pitt维护的ppa:pitti / postgresql安装了PostgreSQL 9.1.3。 之前安装了PostgreSQL 8.4; 我不确定它是否仍然安装或消失。 我添加了一个数据库用户,该用户具有与我的Ubuntu帐户同名的数据库的超级用户权限。 我用sudo service postgresql start数据库守护进程。 我通过由Gerfried Fuchs维护的ppa:rhonda / pgadmin3安装了pgadmin3,版本1.14.0 Beta 1 。 我可以使用我的用户帐户和密码以及端口5433通过pgadmin3连接。 我在pg_hba.conf中的 postgres配置如下(为了便于阅读,删除了注释)。 […] local all postgres peer local all all peer host all all 127.0.0.1/32 md5 host all all ::1/128 md5 Rails设置: 现在我想创建一个使用PostgreSQL的Rails应用程序。 我通过RVM安装了Ruby 1.9.3-p125。 我将Rails 3.2.3安装到Gemset ruby​​-1.9.3-p125@global中。 我为应用程序创建了一个.rvmrc和Gemset。 我通过rails new […]

连接被拒绝(PGError)(postgresql和rails)

当我尝试使用“$ rails s”运行我的localhost时,我一直收到此错误: (Mac OSX 10.8.3)(ruby 2.0.0p195(2013-05-14修订版40734)[x86_64-darwin12.3.0])(Rails 3.2.11)(psql(PostgreSQL)9.2.2)**用自制软件安装 我一直在做很多卸载postgresql并重新安装,所以我有预感,某些地方可能存在冲突的库……我只是不知道从哪里开始。 我在同一个文件夹中安装了Postgresql 9.1和9.2,只是将9.1移到垃圾箱中。 这是我在终端中运行“rails s”时的输出 Danny$ rails s ^[b=> Booting Thin => Rails 3.2.11 application starting in development on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server Exiting /Users/Danny/.rvm/gems/ruby-2.0.0-p195/gems/activerecord-3.2.11/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize’: could not connect to server: Connection refused (PGError) Is the server running on […]

Heroku Rails无法为连接分叉新进程:无法分配内存

我有3个Rails应用程序都使用相同的代码库。 2/3的应用程序运行正常,但其中一个给了我这个错误: 无法为连接分叉新进程:无法分配内存 在尝试查看Postgres日志时,它更加具体: psql:bin // psql-9.2.1-64bit pv:bin // pv-1.1.4-64bit psql-9.2.1-64bit: 无法为连接分叉新进程:无法分配内存 无法为连接分叉新进程:无法分配内存 无法为连接分叉新进程:无法分配内存 bin / brie:第146行:[::整数表达式预期pg_dump: bin // pg_dump-9.2.1-64bit psql-9.2.1-64bit: 无法为连接分叉新进程:无法分配内存 无法为连接分叉新进程:无法分配内存 无法为连接分叉新进程:无法分配内存 这是一个相对较小的应用程序,尤其是数据方面。 我试过重新推动一切,我尝试过heroku-restart,而Heroku的状态页面说它们很好。 任何帮助,将不胜感激。