Tag: postgresql

Rails上的Ruby / PgSQL错误启动:无法加载这样的文件–pg_ext(LoadError)

我是Ruby的新手(来自Java背景)并且可以从Git存储库访问RoR项目。 我能够通过自制软件安装rbenv和Postgres构建Ruby,使用正确的标志安装“pg”gem。 我在项目上做了“捆绑安装”的任何方式,当我去启动服务器时,它创建了一个捆绑包……任何帮助都将是绝对值得赞赏的! $ rails s /Users//Projects/The /vendor/bundle/gems/pg-0.14.1/lib/pg.rb:4:in require’: cannot load such file — pg_ext (LoadError) from /Users//Projects/The Usic/vendor/bundle/gems/pg-0.14.1/lib/pg.rb:4:in ‘ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler/runtime.rb:72:in require’ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler/runtime.rb:72:in block (2 levels) in require’ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler/runtime.rb:70:in each’ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler/runtime.rb:70:in block in require’ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler/runtime.rb:59:in each’ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler/runtime.rb:59:in require’ from /Users//.rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/bundler-1.3.0/lib/bundler.rb:132:in require’

Rails 3.2 Postgres保存错误“ActiveRecord :: StatementInvalid:PG ::错误:错误:位置5’T’附近的语法错误”

当我尝试将特定类保存到数据库时,我的应用程序已经开始抛出错误。 我不确定是什么导致这种情况开始发生 – 过去几天我一直有各种各样的数据库问题…. 在任何情况下,我的模型似乎工作正常(它正确计算所有before_save值),但然后它尝试保存到数据库并爆炸。 SQL (0.8ms) INSERT INTO “portfolios” (“correlation_matrix”, “created_at”, “data”, “mean_return”, “std_dev”, “updated_at”, “weights”) VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING “id” [[“correlation_matrix”, “— \n- – 1.0\n – -0.4873114574375062\n- – -0.4873114574375062\n – 1.0\n”], [“created_at”, Sat, 16 Jun 2012 15:12:35 MDT -06:00], [“data”, {“TSX”=>0.5, “VUSTX”=>0.5}], [“mean_return”, #], [“std_dev”, #], [“updated_at”, Sat, […]

在数据库中上传图像

我希望将上传的图像保存在PostgreSQL数据库的bytea列中。 我正在寻找有关如何将Rails中的图像保存到bytea列的建议,最好使用示例。 我使用Rails 3.1和“pg”驱动程序连接到PostgreSQL。

Rails:使用序列化哈希编码问题,尽管UTF8

我刚刚从ruby 1.9.2更新到ruby 1.9.3p0(2011-10-30修订版33570)。 我的rails应用程序使用postgresql作为其数据库后端。 系统区域设置是UTF8,数据库编码也是如此。 rails应用程序的默认编码也是UTF8。 我有中国用户输入汉字和英文字符。 字符串存储为UTF8编码的字符串。 Rails版本:3.0.9 由于更新,数据库中的一些现有中文字符串不再正确显示。 这不会影响所有字符串,只会影响序列化哈希的一部分。 存储为纯字符串的所有其他字符串仍然看起来是正确的。 例: 这是一个序列化哈希,在数据库中存储为UTF8字符串: broken = “— !map:ActiveSupport::HashWithIndifferentAccess \ncheckbox: \”1\”\nchoice: \”Round Paper Clips \\xEF\\xBC\\x88\\xE5\\x9B\\x9E\\xE5\\xBD\\xA2\\xE9\\x92\\x88\\xEF\\xBC\\x89\\r\\n\”\ninfo: \”10\\xE7\\x9B\\x92\”\n” 为了将此字符串转换为ruby哈希,我使用YAML.load反序列化它: broken_hash = YAML.load(broken) 这将返回带有乱码内容的哈希: {“checkbox”=>”1”, “choice”=>”Round Paper Clips ï¼\u0088å\u009B\u009Eå½¢é\u0092\u0088ï¼\u0089\r\n”, “info”=>”10ç\u009B\u0092”} 乱码的东西应该是UTF8编码的中文。 broken_hash[‘info’].encoding告诉我ruby认为这是# 。 我不同意。 有趣的是,之前没有序列化的所有其他字符串看起来都很好。 在同一记录中,不同的字段包含看起来正确的中文字符—在rails控制台,psql控制台和浏览器中。 每个字符串—无论是序列化哈希还是普通字符串—都保存到数据库中,因为更新看起来也很好。 我试图将乱码文本从可能的错误编码(如GB2312或ANSI)转换为UTF-8,尽管ruby声称这已经是UTF-8了,当然我失败了。 这是我使用的代码: require ‘iconv’ Iconv.conv(‘UTF-8’, ‘GB2312’, broken_hash[‘info’]) 这失败了,因为ruby不知道如何处理字符串中的非法序列。 我真的只想运行一个脚本来修复所有旧的,可能是破坏的序列化哈希字符串并完成它。 有没有办法将这些断弦转换成类似中文的东西? 我只是在原始字符串中使用编码的UTF-8字符串(在上面的示例中称为“已损坏”)。 这是在序列化字符串中编码的中文字符串: […]

如何在Heroku中更改列类型?

我试图将db:migrations迁移到我的heorku实例中,但是我收到错误。 FAQ描述了我的错误如下: 无法更改列类型 示例:PGError:错误:列“verified_at”无法强制转换为键入“date” 原因:PostgreSQL不知道如何将该表中的所有行强制转换为指定的类型。 很可能这意味着您在该列中有一个整数或一个字符串。 解决方案:检查您的记录并确保它们可以转换为新类型。 有时,更容易避免使用change_column,而是重命名/创建新列。 如何立即更改此迁移。 这是我的问题。 对于我的Contacts表,我创建了以下内容: t.string :date_entered 在以后的迁移中,我执行以下操作: change_column :contacts, :date_entered, :date 这个change_column似乎是个问题。 我应该……手动改变迁移吗? 有没有办法可以清理表格中的数据(我不知道Heroku会识别表格中的数据,因为我正在做耙子)。 我显然需要更改此值,并在整个应用程序中使用它。 谢谢。 这就是我想要的……想法? def self.up #change_column :contacts, :date_entered, :date #this fails in postgres, so trying the same outcome rename_column :contacts, :date_entered, :date_entered_old add_column :contacts, :date_entered, :date remove_column :contacts, :date_entered_old end def self.down add_column :contacts, […]

升级到OSX Mavericks后修复postgresql

最近升级到OSX Mavericks已经破坏了我的Rails应用程序的数据库连接。 当我尝试从数据库中获取时,服务器返回以下错误: PG::ConnectionBad (could not connect to server: Connection refused Is the server running on host “localhost” (::1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused Is the server running on host “localhost” (127.0.0.1) and accepting TCP/IP connections on port 5432? could not connect to server: Connection refused […]

ActiveRecord :: AdapterNotSpecified数据库配置未指定适配器

当我使用heroku打开我的web应用程序工作正常,但当我使用rails(localhost)时,我遇到了这个错误: ActiveRecord::AdapterNotSpecified database configuration does not specify adapter 为什么是这样? 这是我的database.yml # PostgreSQL. Versions 8.2 and up are supported. # # Install the pg driver: # gem install pg # On OS X with Homebrew: # gem install pg — –with-pg-config=/usr/local/bin/pg_config # On OS X with MacPorts: # gem install pg — –with-pg-config=/opt/local/lib/postgresql84/bin/pg_config # On Windows: […]

在PostgreSQL中使用Sequel gem插入一个数组

我在代码中创建了一个包含以下模式的表 DB.create_table :Pokemon do primary_key :id String :first_name String :last_name String :email String :zipcode String :company_name String :google_profile String :skype String :phone String :about String :linkedin_profile_url String :company_url column :needs , ‘Text[]’ column :offering , ‘Text[]’ end 为了需要和提供我插入一个字符串数组与以下代码 pokes=DB[:Pokemon]; off=[‘hello1’ , ‘hello2’] nee= [‘need1’ , ‘need2’] pokes.insert(:first_name => ‘abcd’ ,:last_name => ‘mehandiratta’, :offering => off […]

在Rails 4迁移中设置自定义主键时出现问题

我使用postgresql 9.3,Ruby 2.0,Rails 4.0.0。 在阅读了关于在表上设置主键的SO的大量问题之后,我生成并添加了以下迁移: class CreateShareholders < ActiveRecord::Migration def change create_table :shareholders, { id: false, primary_key: :uid } do |t| t.integer :uid, limit: 8 t.string :name t.integer :shares t.timestamps end end end 我还在我的模型中添加了self.primary_key = “uid” 。 迁移成功运行,但是当我使用pgAdmin III连接到数据库时,我看到uid列未设置为主键。 我错过了什么?

我可以在Ruby on Rails上编写PostgreSQL函数吗?

我们正在开始一个基于Ruby on Rails的项目。 我们曾经使用Perl和PostgreSQL函数,并且使用Rails和Active Record我没有看到我们应该如何在PostgreSQL中创建函数并保留Active Record和模型的记录。 我知道我们可以在PostgreSQL中手动创建它,但Active Record的“魔力”在于可以使用所有模型重新创建数据库。 有没有办法使用Rails创建PostgreSQL函数并将其保存在模型中?