У меня есть 2 приложения, которые используют одну и ту же базу данных с помощью инструмента общего доступа к базе данных heroku .Я заметил, что клиенту обслуживаются данные, которые каким-то образом существуют только в 1 из 2 баз данных.Когда я говорю о 2 базах данных, я имею в виду данные, которые доступны при запуске heroku run rails c
из каждого приложения соответственно.
Приложение 1:
> pp c.weigh_ins.pluck(:id, :date, :current_weight)
D, [2018-10-16T14:47:43.016457 #4] DEBUG -- : (30.4ms) SELECT "weigh_ins"."id", "weigh_ins"."date", "weigh_ins"."current_weight" FROM "weigh_ins" WHERE "weigh_ins"."client_id" = $1 [["client_id", 19305]]
[[139358, Tue, 09 Oct 2018 00:00:00 EDT -04:00, 170.0],
[138723, Tue, 02 Oct 2018 00:00:00 EDT -04:00, 217.2], # where does this come from?
[138708, Tue, 02 Oct 2018 00:00:00 EDT -04:00, 174.6],
[137962, Tue, 25 Sep 2018 00:00:00 EDT -04:00, 176.6],
[137243, Tue, 18 Sep 2018 00:00:00 EDT -04:00, 175.8],
[136489, Tue, 11 Sep 2018 00:00:00 EDT -04:00, 177.0],
[135792, Tue, 04 Sep 2018 00:00:00 EDT -04:00, 178.8],
[135217, Tue, 28 Aug 2018 00:00:00 EDT -04:00, 182.4],
[134593, Tue, 21 Aug 2018 00:00:00 EDT -04:00, 184.2],
[133950, Tue, 14 Aug 2018 00:00:00 EDT -04:00, 186.4],
[133320, Tue, 07 Aug 2018 00:00:00 EDT -04:00, 188.8],
[132630, Tue, 31 Jul 2018 00:00:00 EDT -04:00, 190.6],
[132053, Fri, 20 Jul 2018 00:00:00 EDT -04:00, 194.4]]
Приложение 2:
> pp c.weigh_ins.pluck(:id, :date, :current_weight)
(15.8ms) SELECT "weigh_ins"."id", "weigh_ins"."date", "weigh_ins"."current_weight" FROM "weigh_ins" INNER JOIN "check_ins" ON "weigh_ins"."check_in_id" = "check_ins"."id" WHERE "weigh_ins"."deleted_at" IS NULL AND "check_ins"."deleted_at" IS NULL AND "check_ins"."client_id" = $1 ORDER BY "check_ins"."week" DESC, "check_ins"."week" ASC [["client_id", 19305]]
(15.8ms) SELECT "weigh_ins"."id", "weigh_ins"."date", "weigh_ins"."current_weight" FROM "weigh_ins" INNER JOIN "check_ins" ON "weigh_ins"."check_in_id" = "check_ins"."id" WHERE "weigh_ins"."deleted_at" IS NULL AND "check_ins"."deleted_at" IS NULL AND "check_ins"."client_id" = $1 ORDER BY "check_ins"."week" DESC, "check_ins"."week" ASC [["client_id", 19305]]
[[139358, Tue, 09 Oct 2018 00:00:00 EDT -04:00, 170.0],
[138708, Tue, 02 Oct 2018 00:00:00 EDT -04:00, 174.6],
[137962, Tue, 25 Sep 2018 00:00:00 EDT -04:00, 176.6],
[137243, Tue, 18 Sep 2018 00:00:00 EDT -04:00, 175.8],
[136489, Tue, 11 Sep 2018 00:00:00 EDT -04:00, 177.0],
[135792, Tue, 04 Sep 2018 00:00:00 EDT -04:00, 178.8],
[135217, Tue, 28 Aug 2018 00:00:00 EDT -04:00, 182.4],
[134593, Tue, 21 Aug 2018 00:00:00 EDT -04:00, 184.2],
[133950, Tue, 14 Aug 2018 00:00:00 EDT -04:00, 186.4],
[133320, Tue, 07 Aug 2018 00:00:00 EDT -04:00, 188.8],
[132630, Tue, 31 Jul 2018 00:00:00 EDT -04:00, 190.6],
[132053, Fri, 20 Jul 2018 00:00:00 EDT -04:00, 194.4]]
Поскольку оба приложения имеют одинаковый DATABASE_URL
, не должны ли они оба обращаться к одной и той же базе данных?Есть ли какой-то способ, которым они могут быть не синхронизированы?Я понимаю, что у них разные запросы, но они должны возвращать одни и те же данные.