Forum » Programiranje » [C#] Kopiranje baze z restore
[C#] Kopiranje baze z restore
nuclear ::
Lp. Ustvarjam app, ki programsko ustvari podatkovno bazo z tabelami, pripravljeno za uporabo za novo aplikacijo(orej prazna baza). Do sedaj mi je uspelo programsko ustvariti bazo brez tabel. Skripte za ustvarjanje tabel v to bazo novo ne bom uporabljal, ampak bom šel po metodi, kjer si ustvarim backup originalne baze, ter ta backup restoram v novo bazo brez tabel torej.
Trenutna koda je:
Zdej mi niti ni jasno, če sem v pravilnem kontekstu uporabil ta RelocateFiles, ker mislim, da ta samo prekopira bazo na drugo mesto na disku, in popravi poti ali kako?
Problem je v tem, da mi ustvari novo bazo z tabelami v mojem primeru Testna2_Nova, ampak so tabele prazne, zato mi malo nelogično deluje.
Mi lahko en razloži, če relocatefiles samo prekpoira bazo na trdem disku in popravi poti(malo mi je smešno ker se mi ne sanja kaj točno ta funkcija hoče), ali bi morala tudi podatke kopirat?
Ali pa: Kako bi restoral nek .bak file v novo ustvarjeno prazno bazo, ki nima tabel s SMO?
Zgornja koda ki je zakomentirana(zeleno) hoče prekopirat čez originalno, zato vrže napako, ne vem pa kako spremeniti ime, da bi v tisto novo ustvarjeno bazo, brez tabel restoral ta backup s SMO.
Thx
Trenutna koda je:
protected void btnRestore_Click(object sender, EventArgs e) { // backup na disku, strežnik, username, password, kam se naj restora, kje je log restorea RestoreDatabase("Testna2_Nova", @"D:\VS2008\baza.bak", conne.Server, conne.Username, conne.Password); } public void RestoreDatabase(String databaseName, String backUpFile, String serverName, String userName, String password) { ServerConnection connection = new ServerConnection(serverName, userName, password); Server sqlServer = new Server(connection); Restore rstDatabase = new Restore(); rstDatabase.Action = RestoreActionType.Database; rstDatabase.Database = databaseName; BackupDeviceItem bkpDevice = new BackupDeviceItem(backUpFile, DeviceType.File); rstDatabase.Devices.Add(bkpDevice); rstDatabase.ReplaceDatabase = true; rstDatabase.RelocateFiles.Add(new RelocateFile("Testna_web", @"c:\Baze\Testna2.mdf")); rstDatabase.RelocateFiles.Add(new RelocateFile("Testna_web_Log", @"c:\Baze\Testna2.ldf")); rstDatabase.SqlRestore(sqlServer); /*Restore res = new Restore(); res.Database = "Kmet"; res.Action = RestoreActionType.Database; res.Devices.AddDevice(@"D:\VS2008\baza.bak", DeviceType.File); res.PercentCompleteNotification = 10; res.ReplaceDatabase = false; res.PercentComplete += new PercentCompleteEventHandler(ProgressEventHandler); res.SqlRestore(sqlServer);*/ }
Zdej mi niti ni jasno, če sem v pravilnem kontekstu uporabil ta RelocateFiles, ker mislim, da ta samo prekopira bazo na drugo mesto na disku, in popravi poti ali kako?
Problem je v tem, da mi ustvari novo bazo z tabelami v mojem primeru Testna2_Nova, ampak so tabele prazne, zato mi malo nelogično deluje.
Mi lahko en razloži, če relocatefiles samo prekpoira bazo na trdem disku in popravi poti(malo mi je smešno ker se mi ne sanja kaj točno ta funkcija hoče), ali bi morala tudi podatke kopirat?
Ali pa: Kako bi restoral nek .bak file v novo ustvarjeno prazno bazo, ki nima tabel s SMO?
Zgornja koda ki je zakomentirana(zeleno) hoče prekopirat čez originalno, zato vrže napako, ne vem pa kako spremeniti ime, da bi v tisto novo ustvarjeno bazo, brez tabel restoral ta backup s SMO.
Thx
Asus G14 2023 - Ryzen 7940HS - 32GB DDR5 - GeForce RTX 4080 - 990 PRO 4TB
- spremenil: nuclear ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | MSSQL na LinuxuOddelek: Programska oprema | 793 (571) | Iluvatar |
» | Qt/QML zajem podatkov iz podatkovne baze, dobim samo opise fieldov ter prazne vrednosOddelek: Programiranje | 1717 (1460) | windigo |
» | [Qt/C++]problem z Undefined reference na konstanti znotraj razredaOddelek: Programiranje | 2337 (2007) | phantom |
» | [c#] in sql bazaOddelek: Programiranje | 1373 (872) | japol |
» | OleDb in visual studio .netOddelek: Programiranje | 2287 (2066) | Kovalchuk |