C'è un modo semplice per aggiungere uno script di migrazione personalizzato per SQL Compare script?

StackOverflow https://stackoverflow.com/questions/864107

  •  21-08-2019
  •  | 
  •  

Domanda

Al mio lavoro che stanno attualmente avendo alcuni gravi dolori che spingono le nostre modifiche al database in ambienti. Il problema inizia a presentarsi quando creiamo una nuova colonna non annullabile su una tabella esistente. Lo script che genera SQL Compare crea la colonna come non annullabile, così sarà sempre esito negativo. Speravo che ci fosse qualche alternativa a dover modificare manualmente lo script. C'è un modo per aggirarlo? Se no, come si fa a gestire la cosa ragazzi?

È stato utile?

Soluzione

Crea una tabella:

create table #bingo ( id int )

Aggiungere un valore:

insert into #bingo values (1)

Aggiungi una nuova colonna:

alter table #bingo add userid int

Popolare la nuova colonna:

update #bingo set userid = 1 where id = 1

Modificare la nuova colonna non annullabile:

alter table #bingo alter column userid int not null

Si dovrebbe modificare manualmente il Redgate SQL Compare per farlo funzionare in questo modo.

Altri suggerimenti

Come si pensa di riempimento della colonna NOT NULL? Io non vedo come SQL Compare potrebbe davvero trovare una soluzione dato che non ha modo di sapere come si dovrebbe riempirlo.

È possibile creare la colonna con un valore predefinito, quindi è sufficiente aggiungere una dichiarazione di aggiornamento, alla fine degli script generati per aggiornare correttamente la colonna se avete qualche fonte per i valori.

aggiungere un default sulla nuova colonna non nullo

quando si crea una nuova colonna non nullo, che valore hanno tutte le righe esistenti ottenere? Se non si conosce, fare il nullable colonna.

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