小编Oni*_*shi的帖子

Heroku在使用奇怪的pg_advisory_unlock迁移期间挂起

我正在使用Heroku上托管的Rails 5.1,我使用以下命令来迁移我的数据库:

heroku run rake db:migrate -a [my app name]

所有迁移本身都正确完成:

SQL (1.6ms)  INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"  [["version", "20180504164326"]]
   (2.1ms)  COMMIT
Migrating to AddPinToStaff (20180519024721)
   (1.5ms)  BEGIN
== 20180519024721 AddPinToStaff: migrating ====================================
-- add_column(:staff, :pin_number, :string)
   (4.2ms)  ALTER TABLE "staff" ADD "pin_number" character varying
   -> 0.0045s
== 20180519024721 AddPinToStaff: migrated (0.0046s) ===========================
Run Code Online (Sandbox Code Playgroud)

这是我创建的最后一个迁移文件,所以这一切似乎都有效.然后,这运行:

SQL (1.6ms)  INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version"  [["version", "20180519024721"]]
(2.4ms)  COMMIT
ActiveRecord::InternalMetadata Load (1.7ms)  SELECT  "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails heroku

6
推荐指数
1
解决办法
551
查看次数

从Active Record Relation中删除对象而不删除它

我正在使用Postgresql在Ruby on Rails 4上工作,而且我遇到了一些麻烦.我们有一个名为Active Record的模型AttendanceRecord属于一AttendanceDay,AttendanceSwipe,Course,和CourseTimeSlot.出勤记录应该在这些领域是独一无二的,但是出了问题,重复出现了.因此,我写了一个方法来查找所有重复的出勤记录,并且只保留其中一个.

在该方法的过程中,我构建了一个共享相同属性的对象的Active Record Relation,如下所示:

records = AttendanceRecord.where(course_id: attributes[0], course_time_slot_id: attributes[1], attendance_swipe_id: attributes[2], attendance_day_id: attributes[3])

关系不错,对吗?

接下来,我找到了我想要保留并命名的对象to_keep.然后,我试图从关系中删除该对象,如下所示:

records.delete(to_keep)

不幸的是,我发现该delete方法在一个Relation上的工作方式与在Array上的工作方式略有不同.它不是简单地从列表中删除对象,而是实际上从数据库中删除它(没有回调).

所以:我想知道是否有一个我遗漏的方法,它将to_keep从关系中删除我的对象而不实际触摸对象本身.然后,我将能够安全地打电话records.destroy_all,愉快地开展业务.:)

sql activerecord ruby-on-rails relational-database ruby-on-rails-4

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

RVM Requiremets尝试点击已弃用的自制程序/版本

我正在尝试在Mac OS Sierra(10.13.3)计算机上运行Ruby on Rails项目.当我导航到Rails文件夹时,RVM告诉我以下内容:

Required ruby-1.9.3-p392 is not installed.
To install do: 'rvm install "ruby-1.9.3-p392"'
Run Code Online (Sandbox Code Playgroud)

但是,当我安装时,我得到以下内容:

$ rvm install "ruby-1.9.3-p392"
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.13/x86_64/ruby-1.9.3-p392.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system..........
Installing required custom packages: homebrew/versions.
Error running 'requirements_osx_brew_install_custom homebrew/versions',
please read /Users/petercormack/.rvm/log/1518211184_ruby-1.9.3-p392/install_custom.log
Requirements installation failed with status: 1.
Run Code Online (Sandbox Code Playgroud)

当我查看该日志文件时,我看到以下内容: …

macos homebrew ruby-on-rails rvm

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