سؤال

لدي Liquibase الهجرة أنني يدويا تشغيل لتحميل البذور البيانات من عدة ملفات CSV إلى قاعدة البيانات.وأود أن تشغيل هذه الهجرة في كل مرة تشغيل grails run-app.

أعتقد أن لدي سؤالين في واحد:

  1. كيف يمكنني دمج migrate القيادة في بلدي grails run-app ?
  2. كيف يمكنني مسح DATABASECHANGELOG إلى اسمحوا لي أن تشغيل نفسه الهجرة مرارا وتكرارا ؟

أو هل هناك طريقة أفضل من تحميل الكثير من البيانات في DB من ملفات CSV ؟

هل كانت مفيدة؟

المحلول

السؤال 1 - دمج ترحيل الأمر إلى تشغيل التطبيق ، يجب الاستماع الأحداث القيت في تشغيل التطبيق النصية.ويفسر هذا هنا, و أكمل المقال هنا.

السؤال 2 - لمسح قاعدة البيانات ، ربما يمكنك كتابة الهجرة التي مسح db بالنسبة لك ؟ الطريقة التي يمكنني القيام به هو استخدام القليل النصي كتبت ذلك فقط قطرات يخلق ديسيبل.يفعل الخلية:

target(dropdb: "The description of the script goes here!") {
   def x = 'mysql -u root --password=XXXX -e "drop database yourdb; create database yourdb default character set utf8; " '.execute(); 
   x.waitFor()
    println "Exit Value ${x.exitValue()}"
}

setDefaultTarget(dropdb)

نصائح أخرى

السؤال رقم 2:إذا كان لديك خاص changeSets كنت تريد تشغيل كل الوقت ، هناك "alwaysRun" سمة يمكنك تعيين على التغيرات المعينة على الوسم.

من أجل المال ، فإنه من السهل أن تقرأ Liquibase جانت النصوص تكرار ما يفعلونه.إنهم بسيطة و سيكون لديك المزيد من التبصر في ما يحدث.

يجب عليك استخدام autobase المساعد.أنه سيتم تشغيل الخاص بك الهجرات عند بدء تشغيل التطبيق.

أنه يحتوي على البرنامج النصي التحويل من xml التغيير إلى groovy واحد وكذلك حتى لا يكون يدويا تحويله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top