db'mi taşımaya çalıştığımda bir hata alıyorum. , Taşınan, usta döndüğünüzü ve Raylar DB Taşıma Hatası: ilişki zaten var
- db yeni şube, sorularla desteklenen 'talepler' yarattı bazı şeyler yaptı, db: göç etti ve her şey iyi çalışıyordu.
, heroku postgres veritabanından çektiği için, herhangi bir şeyin gerçek verilerle çalışıp çalışmadığını test edebilirdim. Daha sonra db göç çalıştı, ancak bana bu hatayı verdi:
rake db:migrate == CreateRequests: migrating ================================================= -- create_table(:requests) NOTICE: CREATE TABLE will create implicit sequence "requests_id_seq1" for serial column "requests.id" rake aborted! An error has occurred, this and all later migrations canceled: PG::Error: ERROR: relation "requests" already exists : CREATE TABLE "requests" ("id" serial primary key, "title" character varying(255), "content" text, "category" character varying(255), "status" character varying(255), "requested_track_id" integer, "created_at" timestamp, "updated_at" timestamp)
Herhangi bir fikir?
Kapalı bir sıra oluşturma ile ilgili mesaj bir hata değil, yalnızca bir bildirim (bilgilendirme mesajı. Bu, aktif kaydın "id" sütunu için varsayılan olarak yapacağı bir otomatik artırım sütunu kullanan herhangi bir tablo için normaldir.Hata, 'request' tablonun zaten mevcut olmasıdır. – qqx
Yani bu mesajı almam durumunda ne yapmalıyım? Tabloyu bırakmak için geçişler oluşturarak ve daha sonra aynı tabloyu oluşturmak için bir geçişi yeniden oluşturarak çözdüm. Daha iyi bir yolu var mı? – kibaekr
Veritabanı şeması, tüm ortamların net sonucu olarak aynı ortamı varsayarak olacaktır. Dalları birleştirene kadar kodunuz, temelde db üzerinde gerçekte gerçekleşmiş olan geçiş dizilerini göstermez. Ve, geçişi çalıştırdığınızda, önceki geçişler için yapılan denetimler yalnızca olası uyuşmazlıklara karşı olası çatışmaları işaret edecek şekilde yapılır. Tüm taşıma işlemlerini tek bir şubede tutmanızı öneririm. –