में कोई बदलाव नहीं है, मुझे कुछ मूलभूत याद आना चाहिए।FluentMigrator माइग्रेशन सफल होता है, लेकिन डीबी
मैं एक विरासत परियोजना पर काम कर रहा हूँ, और मुझे लगता है मैं कुछ रोचक डेटाबेस परिवर्तन और डेटा माइग्रेशन मुझे लगता है कि बहुत द्वारा आसान बनाया जाएगा आ रहा है मिश्रण कारण में FluentMigrator लाने के लिए कोशिश कर रहा हूँ इस उपकरण का उपयोग कर।
प्रारंभिक माइग्रेशन के लिए, मैं बस डेटाबेस को वर्तमान उत्पादन संस्करण में लाने के लिए चाहता हूं। आरंभिक माइग्रेशन को सरल बनाने के लिए, मैंने अपने SQL Server 2008 डेटाबेस को स्क्रिप्ट किया है, और माइग्रेशन SQL आदेशों की श्रृंखला के रूप में स्क्रिप्ट किए गए आदेशों को निष्पादित करता है।
इसे बाहर का परीक्षण करने के लिए, मैं एक पूरी तरह से खाली डाटाबेस बनाने, और इस का उपयोग कर कमांड लाइन से चलाने का प्रयास:
> migrate -a "C:\My\Project\Path\bin\debug\Rds.MyProjName.DBMigrations.dll"
-db SqlServer2008 -conn "Data Source=.\SQLEXPRESS2008;Initial Catalog=myNewDbName;
Integrated Security=SSPI" -version=20100901000000
संस्करण निर्दिष्ट प्रथम प्रवास के वर्ग के प्रवासन विशेषता पर टाइमस्टैम्प है।
कमांड लाइन में सब कुछ ठीक से चलाने के लिए प्रकट होता है - पूरे स्क्रिप्ट के द्वारा ज़ूम, और इसके साथ समाप्त होता है:
-- CreateProductionDbCircaSep2010: migrated
हालांकि, जब मैं डेटाबेस पर एक नज़र डालें, यह अभी भी खाली है । बिल्कुल कुछ भी नहीं है। मेरे ऊपर विधि इस प्रकार है:
public override void Up()
{
var cmds = LoadEmbeddedResources
.GetEmbeddedResource("scripted_db_2010-09-01.sql")
.AsString()
.ParseCommands();
foreach (var c in cmds) {
Execute.Sql(c);
}
CreateReferenceData();
}
(FYI करें, मैं स्क्रिप्ट के बजाय पार्स करने कर रहा हूँ इसे चलाने के रूप में है, क्योंकि मैं खोज यह मर गया था इससे पहले कि Migrator.Net का उपयोग करके शुरू कर दिया है, और इस पहले से ही था सेट अप करें।)
क्या कोई मुझे हाथ दे सकता है? यह लगभग प्रतीत होता है तरह लेन-देन करने से नहीं है, या कुछ कमांड लाइन विकल्प प्रवास कर एक सूखी रन चालू है, लेकिन मैं इसे नहीं दिख रहा है करने के लिए ...
संपादित करें: अतिरिक्त जिन चीजों की मैंने कोशिश की है
यह पुष्टि करने के लिए कि कनेक्शन स्ट्रिंग डेटाबेस का उपयोग कर रहा था, मैं उम्मीद करता हूं कि, मैंने डेटाबेस का नाम बदल दिया और बाद में एक लॉगिन त्रुटि मिली, जैसा कि अपेक्षित था।
आगे परीक्षण के लिए, मैं स्क्रिप्ट की लंबाई में कटौती, और
public override void Up()
{
Execute.Script(@"..\Resources\test.sql");
}
आदेश-दर-आदेश के बजाय
का उपयोग कर इसे क्रियान्वित करने की कोशिश की, लेकिन मैं एक ही परिणाम मिलता है।
C:\My\Project\Path\FluentMigrator.Net\ >migrate -a "C:\My\Project\Path\bin\debug
\My.Project.DBMigrations.dll" -db SqlServer2008 -conn "Data Source=.\SQLEXPRESS2
008;Initial Catalog=myNewDbName;Integrated Security=SSPI" -version=2010090100000
0
Using Database SqlServer2008 and Connection String Data Source=.\SQLEXPRESS2008;
Initial Catalog=myNewDbName;Integrated Security=SSPI
-- VersionMigration: migrating ===============================================
-- CreateTable VersionInfo
-- VersionMigration: migrated
-- CreateProductionDbCircaSep2010: migrating =================================
-- ExecuteSqlScript C:\My\Project\Path\FluentMigrator.Net\..\Resources\test.sql
-- CreateProductionDbCircaSep2010: migrated
अभी तक कोई टेबल डेटाबेस में - वहाँ भी उम्मीद VersionInfo तालिका नहीं है: यहाँ है कि परीक्षण पर उत्पादन होता है (ध्यान दें, मैं pathes और इस तरह संपादित)।
मैं समय के साथ परियोजना के लिए एक पैच कोशिश करने और इकट्ठा करने जा रहा हूं। पैच सबमिट करने के लिए –
+1 –