» »

[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:
 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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

MSSQL na Linuxu

Oddelek: Programska oprema
5805 (583) Iluvatar
»

Qt/QML zajem podatkov iz podatkovne baze, dobim samo opise fieldov ter prazne vrednos

Oddelek: Programiranje
71736 (1479) windigo
»

[Qt/C++]problem z Undefined reference na konstanti znotraj razreda

Oddelek: Programiranje
102359 (2029) phantom
»

[c#] in sql baza

Oddelek: Programiranje
161385 (884) japol
»

OleDb in visual studio .net

Oddelek: Programiranje
162302 (2081) Kovalchuk

Več podobnih tem