Domanda

Il mio VS2010 del database Deploy sta venendo a mancare sul mio server di build, che dispone di SQL Server 2008 R2 installato su di esso. Ecco l'output che è rilevante:

  

La creazione di Acme.Database ...

     

D: \ TeamCity \ BuildAgent \ Work \ da2fc5ebd5805d44 \ src \ Acme.Database \ sql \ Acme.Database.sql (30,0): SQL01268 errore: .NET SqlClient Data Provider: Messaggio 5133, livello 16, stato 1 , ricerca linea 1 directory per il file "C: \ Programmi \ Microsoft SQL Server ** ** MSSQL10.MSSQLSERVER \ MSSQL \ DATA \ Acme_Database_log.ldf" non riuscita con l'errore del sistema operativo 3 (il sistema non riesce a trovare il percorso specificato. ).

     

D: \ TeamCity \ BuildAgent \ Work \ da2fc5ebd5805d44 \ src \ Acme.Database \ sql \ Acme.Database.sql (30,0): SQL01268 errore: .NET SqlClient Data Provider: Messaggio 1802, livello 16, stato 1 , linea 1 CREATE DATABASE non riuscito. Impossibile creare alcuni nomi di file elencati. Controllare gli errori correlati.

     

Errore Un durante l'elaborazione batch.

Il percorso effettivo è qui:

  

C: \ Programmi \ Microsoft SQL Server ** ** MSSQL10_50.MSSQLSERVER \ MSSQL \ DATA \ Acme_Database.mdf

L'unico riferimento al percorso che ho trovato nel progetto di database è nella cartella principale, un file chiamato:

  

PRIMARY.Acme_Database.sqlfile.sql

Si comprende un'istruzione ALTER DATABASE che ho cambiato per utilizzare il percorso _50, ma questo non risolve il problema.

Io non sono sicuro perché le esigenze di progetto db di sapere dove il file vero e proprio database di MDF si trova in ogni caso - avrei pensato che potrebbe semplicemente collegarsi ad esso vis TSQL, ma in ogni caso non riesco a ottenere il progetto per implementare con questo errore e apprezzerebbe qualsiasi aiuto.

È stato utile?

Soluzione

Si scopre che se si specifica un "file" in oggetti dello schema \ a livello di database Objects \ Storage \ Files (uso Aggiungi elemento, File) i valori specificati nel l'override percorso coloro alzò gli occhi dal server. Se è necessario specificare le usano le variabili da sqlcmdvariables $ (DefaultdataPath) $ (Nomedatabase) per riempire le cose.

Altri suggerimenti

Date un'occhiata al il percorso del file di default sul server stesso.

Screencast: http://screencast.com/t/OWM5ODFjZj

Il fatto che non avere un percorso specificato potrebbe probabilmente essere il problema.

[Aggiornamento] Il motivo che mi propongo è che durante la creazione dello script di distribuzione, se non avete specificato le impostazioni nelle impostazioni del progetto -.> Scheda Distribuzione, il DefaultDataPath si alzò lo sguardo dal percorso del server di destinazione

Non so nulla di TeamCity davvero così questa potrebbe essere una domanda stupida, ma come va la distribuzione? Sembra che il compito implementare MSBuild per un progetto DB può prendere una proprietà che dà il percorso dei dati:

http://www.codewrecks.com/blog/index.php/2009/10/06/deploy-a-database-project-with-tfs-build/

Può si imposta il percorso in quel modo?

ho avuto lo stesso errore, ma una soluzione diversa. Per me tutto era corretto (per quanto posso dire), ma lo script deploy generato impostare le variabili di percorso prima che la variabile databasename - risultante in un riferimento a una variabile che non esisteva. Ho aggiornato Database.sqlcmdvars per codificare il valore del nome del database -. Non le migliori pratiche, ma una soluzione sufficiente per le mie esigenze

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top