Tag: postgresql

删除一些以前的数据后,如何重新启动PostgreSQL中的表的id计数?

我在Rails 2.3.8上使用PostgreSQL数据库,我需要在我的表上重启自动增量ID。 我怎样才能做到这一点?

SQL – 按最接近的值排序记录

我为产品详细信息创建了一个API在此API中,我还需要附加类似的产品作为响应。 因此对于类似的产品情况如下1)价格明智(+10和-10)2)然后类别明智(来自相同类别) 例如,我的产品ID为#30,价格为30美元,类别为“啤酒”所以类似的产品列表将如下所示首先显示所有产品啤酒类产品介于+10和-10之间,范围为30美元(我的意思是b / w范围20到40)然后附上属于相同类别“啤酒”的其他产品,最接近的价格为30美元假设相同类别的产品价格低于10美元,17美元,45美元,42美元,50美元 因此,产品将分类如下:30美元42美元(42美元 – 30美元= 12美元),17美元(30美元 – 17美元= 13美元),45美元(45美元 – 30美元= 15美元),10美元(30美元 – 10美元= 20美元),50美元(50美元) – 30美元= 20美元) 对于+10 -10范围内的类似产品,我创建了以下查询 similar_price = Product.includes(:sub_category, :brand, :product_type, :category).in_stock.where(“(actual_price BETWEEN ? AND ? AND category_id = ? ) “, min_price, max_price, self.category_id) 现在我需要订购价格最近的产品。 如何用rails中的postgres查询解决这个问题?

Rails:删除级联vs依赖destroy

假设我有两个表: users和orders 。 用户有很多订单,因此我的订单表中自然会有一个外键user_id。 rails中的最佳实践(在速度,样式和参照完整性方面)是什么,以确保如果删除用户,所有相关订单也会被删除? 我正在考虑以下选项: 案例1.在用户模型中使用:dependent => :destroy 案例2.在postgres中定义表顺序并写入 user_id integer REFERENCES users(id) ON DELETE CASCADE 我有什么理由要使用案例1吗? 似乎案例2正在做我想做的一切吗? 执行速度有区别吗?

Rails 3.1。 Heroku PGError:运算符不存在:字符变化=整数

修复错误有点麻烦。 一切都适用于本地机器。 在PG上,heroku是错误的。 这是日志: ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m ActionView::Template::Error (PGEr ror: ERROR: operator does not exist: character varying = integer ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m LINE 1: …T “reviews”.* FROM “re views” WHERE “reviews”.”trip_id” = 32 ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m : SELECT “reviews”.* FROM “review s” WHERE “reviews”.”trip_id” = 32): ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m 31: ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m 33: ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m 34: ←[32m2012-01-09T19:52:24+00:00 app[web.1]:←[0m 32: […]

Rails ActiveRecord – 如何在两个日期之间获取记录

我在数据库中有两个日期列 – from_date和to_date 。 例: from_date : 2012-09-10 to_date : 2012-09-30 today : 2012-09-13 如果today的日期在from_date和to_date之间,我需要获取所有记录。 如何在SQL查询中执行此操作? 如果我已经加载了相应的记录,我可以很容易地决定,如果今天的日期在from_date和to_date之间,但我不知道,如何从数据库中直接获取这些记录。

Heroku上的Puma Cluster配置

我在RoR4 Heroku应用程序上配置Puma(multithreading+多核服务器)需要一些帮助。 Heroku上的文档并不是最新的。 我遵循了这个:配置的并发和数据库连接 ,没有提到集群的配置,所以我不得不同时使用这两种类型(线程和多核)。 我目前的配置: ./Procfile web: bundle exec puma -p $PORT -C config/puma.rb ./config/puma.rb environment production threads 0,16 workers 4 preload_app! on_worker_boot do ActiveRecord::Base.connection_pool.disconnect! ActiveSupport.on_load(:active_record) do config = Rails.application.config.database_configuration[Rails.env] config[‘reaping_frequency’] = ENV[‘DB_REAP_FREQ’] || 10 # seconds config[‘pool’] = ENV[‘DB_POOL’] || 5 ActiveRecord::Base.establish_connection end end 问题: a)我是否需要像Unicorn一样的before_fork / after_fork配置,因为群集工作者是分叉的? b)如何根据我的应用程序调整我的线程数 – 将它放下的原因是什么? /在什么情况下它会有所作为? 是不是已经优化了0:16? […]

如何创建rails迁移以删除/更改精度并按小数缩放?

我试图从我的数据库中的十进制(PostgreSQL NUMERIC )字段中删除精度和比例属性? 田野: t.decimal “revenue_per_transaction”, :precision => 8, :scale => 2 t.decimal “item_quantity”, :precision => 8, :scale => 2 t.decimal “goal_conversion”, :precision => 8, :scale => 2 t.decimal “goal_abandon”, :precision => 8, :scale => 2 t.decimal “revenue”, :precision => 8, :scale => 2 我需要在迁移中添加什么来将其更改为无限制的比例和精度,或者增加比例? 目前我正在达到规模限制并得到如下错误: ERROR: numeric field overflow 这是上下文: Heroku上的“PG ::错误 – 数字字段溢出”

具有正确的Rails命名和约定的“PG :: UndefinedTable:ERROR:relation不存在”

我已经阅读了很多像这样的底池,但我见过的所有解决方案都在模型,命名和Rails惯例的命名中。 现在,当我在PostgreSQL 9.1中的生产环境中第一次运行时, 我遇到了这个问题 rake db:migrate RAILS_ENV=production 要么 rake db:schema:load RAILS_ENV=production 我可以毫无问题地创建数据库: rake db:create RAILS_ENV=production => OK 错误是 rake aborted! PG::UndefinedTable: ERROR: relation “categories” does not exist LINE 5: WHERE a.attrelid = ‘”categories”‘::regclass ^ : SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid […]

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 […]

为什么我的PostgreSQL数组索引没有被使用(Rails 4)?

我有一个PostgreSQL字符串数组作为表中的列。 我使用GIN方法创建了一个索引。 但是任何查询都不会使用索引(相反,他们使用filter对整个表进行顺序扫描)。 我错过了什么? 这是我的迁移: class CreateDocuments < ActiveRecord::Migration def up create_table :documents do |t| t.string :title t.string :tags, array: true, default: [] t.timestamps end add_index :documents, :tags, using: 'gin' (1..100000).each do |i| tags = [] tags << 'even' if (i % 2) == 0 tags << 'odd' if (i % 2) == 1 tags […]