Xüsusi miqrasiya ləğv etmək üçün necə?

Aşağıdakı db\migrate\20100905201547_create_blocks.rb köçəri faylı var

Bu köç faylını necə geri ala bilərəm?

660
05 сент. AnApprentice 05 Sentyabr. 2010-09-05 23:30 '10 saat 23:30 'da 2010-09-05 23:30
@ 13 cavab
 rake db:rollback STEP=1 

Geri çəkmək istədiyiniz köçürmənin son tətbiq olunduqda bu, bunu etmək yoludur. 1-ə qayıtmaq istədiyiniz köçlərin sayını dəyişə bilərsiniz.

Məsələn:

 rake db:rollback STEP=5 

Bundan sonra da meydana gələn bütün köçəri (4, 3, 2, həmçinin 1) geri qaytaracaqdır.

Bütün köçürmələri (və daxil olmaqla) hədəf köçünü geri qaytarmaq üçün aşağıdakıları istifadə edin: (Bu düzeltilmiş əmr, orijinal mesajda bir səhv bildirən bütün şərhlərdən sonra əlavə edildi)

 rake db:migrate VERSION=20100905201547 

YALNIZ BİR xüsusi miqrasiyanı geri qaytarmaq üçün (ÖDƏNİ çıxmaq) istifadə edin:

 rake db:migrate:down VERSION=20100905201547 

Qeyd edək ki, bu, hər hansı bir ara məcburiyyəti ləğv etməyəcəkdir. Əgər bu rake db:migrate təhlükəsiz olaraq, rake db:migrate edə bilərsiniz rake db:migrate və əvvəlki təkrarlanmayan bütün digərləri atlayaraq təkrar başladır.

1052
06 сент. Cavab Zachary Wright tərəfindən verilir 06 Sep. 2010-09-06 00:10 '10 at 0:10 2010-09-06 00:10
 rake db:migrate:down VERSION=20100905201547 

müəyyən bir faylın geri qaytarılması.


Bütün miqrasiyaların versiyasını tapmaq üçün bu əmri istifadə edə bilərsiniz:

border=0
 rake db:migrate:status 

Və ya köçün fayl adının yalnız önü ləğv etmək lazım olan versiyasıdır.


Göç əsnasında Ruby on Rails təlimatı üçün girişə baxın.

814
09 июля '11 в 17:36 2011-07-09 17:36 Cavab John Kremer tərəfindən 09.07.2011 tarixində saat 17: 00-da verilir

Son miqdarı geri qaytarmaq üçün bunu edə bilərsiniz:

 rake db:rollback 

Gerçekleştirmeniz gereken versiyanı istifadə edərək, xüsusi bir geçişi iptal etmek isterseniz:

 rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION 

Məsələn, 20141201122027 versiyası varsa, bunu edə bilərsiniz:

 rake db:migrate:down VERSION=20141201122027 

bu xüsusi köçməyi geri qaytarmaq.

45
02 дек. Cavab Waleed 02 Dekabr. 2014-12-02 10:26 '14 saat 10:26 'da 2014-12-02 10:26

rake db:migrate:down VERSION=your_migrations's_version_number_here

Sürüm, köç faylının adına sayısal önektir.

Versiyasını necə tapmaq olar :

Miqrasiya fayllarınız rails_root/db/migrate saxlanılır. Geri çəkmək istədiyiniz müvafiq fayl tapın və prefiks nömrəsini kopyalayın.

məsələn

fayl adı: 20140208031131_create_roles.rb sonra versiya 20140208031131

24
22 апр. Cavab Hardik tərəfindən 22 aprel tarixində verilir. 2014-04-22 09:58 '14 at 09:58 2014-04-22 09:58

rake db:rollback istifadə edərək, müxtəlif variantlarla köçürməni geri ala bilərsiniz. Sözdizimi tələblərinizdən asılı olaraq dəyişəcək.

Yalnız son köçürməni geri almaq istəyirsinizsə, onda da istifadə edə bilərsiniz

 rake db:rollback 

və ya

 rake db:rollback STEP=1 

Bir anda miqrasiya sayını geri qaytarmaq istəsəniz, sadəcə sübuta keçin:

 rake db:rollback STEP=n 

burada n , son miqrasiyadan hesablanan geri çəkilmə miqdarıdır.

Belirli bir geçişe geri dönmek isterseniz, göç sürümünü aşağıdakı kimi aktarmanız lazımdır:

 rake db:migrate:down VERSION=xxxxx 

xxxxx, miqrasiya versiyasıdır.

21
24 марта '14 в 10:54 2014-03-24 10:54 cavab 24 mart '14, 10:54 'də verilir. 2014-03-24 10:54

Son miqdarı geri qaytarmaq üçün bunu edə bilərsiniz:

 rake db:rollback 

Gerçekleştirmeniz gereken versiyanı istifadə edərək, xüsusi bir geçişi iptal etmek isterseniz:

 rake db:migrate:down VERSION=YOUR_MIGRATION_VERSION 

Ləğv etmək istədiyiniz köç faylı db/migrate/20141201122027_create_some_table.rb , bu miqrasiya üçün VERSION bu miqyasın yaradılması üçün vaxt damgası olan 20141201122027 və bu 20141201122027 geri qaytarmaq üçün əmrdir:

 rake db:migrate:down VERSION=20141201122027 
13
06 янв. Cavab Sandip Vavhal Jan 06 tərəfindən verilir 2015-01-06 16:01 '15 at 16:01 2015-01-06 16:01

Son geri köçmə:

 # rails < 5.0 rake db:rollback # rails >= 5.0 rake db:rollback # or rails db:rollback 

Son n sayda miqdarı geri qaytarır

 # rails < 5.0 rake db:rollback STEP=2 # rails >= 5.0 rake db:rollback STEP=2 # or rails db:rollback STEP=2 

Xüsusi bir miqrasiyanın geri çəkilməsi

 # rails < 5.0 rake db:migrate:down VERSION=20100905201547 # rails >= 5.0 rake db:migrate:down VERSION=20100905201547 # or rails db:migrate:down VERSION=20100905201547 
12
20 сент. Deepak Mahakale tərəfindən verilmiş cavab 20 Sep. 2016-09-20 15:16 '16 'da 15:16' də 2016-09-20 15:16

Bu geri çevrilən bir miqrasiyadirsə və sonuncusu yerinə yetirildikdə, rake db:rollback . Həmişə versiyasını istifadə edə bilərsiniz. məsələn

köç faylı 20140716084539_create_customer_stats.rbdir, beləliklə, geri qaytarma əmri olacaq, rake db:migrate:down VERSION=20140716084539

6
28 июля '14 в 13:36 2014-07-28 13:36 Cavab Santanu 28 iyul, 14 saat 13:36 2014-07-28 13:36 verilir

Rails Kılavuzundan

Əvvəlki köçməyə qayıt

revert metodundan istifadə edərək, bir miqrasiyanı geri qaytarmaq üçün Active Record funksiyasından istifadə edə bilərsiniz:

 require_relative '20100905201547_create_blocks' class FixupCreateBlock < ActiveRecord::Migration def change revert CreateBlock create_table(:apples) do |t| t.string :variety end end end 

revert üsulu da redaktə etmək üçün əmrlər blokunu qəbul edir. Bu, əvvəlki miqrasiyaların seçilmiş hissələrinin qaytarılması üçün faydalı ola bilər. Məsələn, CreateBlock sabitdir və daha sonra poçt kodunu yoxlamaq üçün CHECK sərhədinin əvəzinə Active Record çeklərindən istifadə etmək ən yaxşı olduğuna qərar verildi.

  class DontUseConstraintForZipcodeValidationMigration < ActiveRecord::Migration def change revert do # copy-pasted code from CreateBlock reversible do |dir| dir.up do # add a CHECK constraint execute <<-SQL ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK (char_length(zipcode) = 5); SQL end dir.down do execute <<-SQL ALTER TABLE distributors DROP CONSTRAINT zipchk SQL end end # The rest of the migration was ok end end end 

Eyni miqrasiya də geri qaytarılmadan istifadə edilə bilərdi, lakin bu bir neçə addım daha tələb edirdi: create_table əmri və reversibiliyi dəyişdirərək, create_table'yi drop_table ilə əvəz etməli və nəhayət, yuxarı və aşağı əvəz. Bu, bütün qayğının qayğısına qalacaq.

3
29 июня '15 в 11:05 2015-06-29 11:05 Cavab Maniş Shrivastava tərəfindən 29 iyun 'da 11:05' də veriləcəkdir 2015-06-29 11:05

Göçlər komanda ilə məlumat bazasını dəyişir

 $ bundle exec rake db:migrate 

Bir addım keçiddən istifadə edərək ləğv edə bilərik

  $ bundle exec rake db:rollback 

Əvvəldən dönmək üçün istifadə edə bilərik

  $ bundle exec rake db:migrate VERSION=0 

Nəzərdən gəldiyi kimi, hər hansı digər nömrəni bu sürüm nömrəsinə 0 migrates ilə əvəz edərkən, versiya nömrələri miqrasiya sırası siyahısından gəlir

3
06 мая '16 в 23:11 2016-05-06 23:11 cavab Nirupa 06 May '16 saat 23:11 2016-05-06 23:11 verilir

Raylar 5-də db-yə salmaq çox asandır: köç: vəziyyət və ya relslər db: migrate: status

Eyni şeyi idarə etmək üçün dəyişdirilmişdir, sonra sadəcə ləğv etmək istədiyiniz versiyanı seçin və sonra db-i çalıştırın: MIGRATION VERSION = 2013424230423

VERSION'in kapitallaşdırıldığından əmin olun.

Hər hansı bir miqrasiya addımında probleminiz varsa və ya ortada sıxışmış olsanız, köç faylına gedin və artıq köç etdiyiniz xəttləri şərh edin.

Bu kömək edir

2
20 июля '16 в 20:07 2016-07-20 20:07 Cavab 20 iyul, 20:07 2016-07-20 20:07 mahmud shaheen tərəfindən verilir

Bütün migrasyonları müəyyən bir versiyaya (məsələn, 20181002222222 ) 20181002222222 üçün 20181002222222 istifadə edin:

 rake db:migrate VERSION=20181002222222 

(Qeyd edək ki, db:migrate burada istifadə olunur və db:migrate:down bu sualın digər cavablarında olduğu kimi.)

Belirtilen miqrasiya versiyası mövcud versiyadan daha eski olduğunu varsayarsak, bütün göçleri belirtilen versiyaya qaytarır, ancaq bunları da daxil deyildir.

Misal üçün, rake db:migrate:status əvvəlcə göstərilir:

  (... some older migrations ...) up 20181001002039 Some migration description up 20181002222222 Some migration description up 20181003171932 Some migration description up 20181004211151 Some migration description up 20181005151403 Some migration description 

Running:

 rake db:migrate VERSION=20181002222222 

Nəticədə:

  (... some older migrations ...) up 20181001002039 Some migration description up 20181002222222 Some migration description down 20181003171932 Some migration description down 20181004211151 Some migration description down 20181005151403 Some migration description 

Link: https://makandracards.com/makandra/845-migrate-or-revert-only-some-migrations

1
10 окт. Jon Schneider 10 oktyabra cavab verin 2018-10-10 20:37 '18 saat 20:37 'da 2018-10-10 20:37

Geri çəkilmək və keçid etmək istəyirsinizsə, aşağıdakıları yerinə yetirə bilərsiniz:

 rake db:migrate:redo 

Eyni şəkildə:

 rake db:rollback rake db:migrate 
0
11 июня '15 в 23:51 2015-06-11 23:51 Cavab Iwan B tərəfindən verilir. 11 iyun '15, saat 23:51 'da