if not exists (select top 1 1 from sys.objects where name = 'MigrationSignature' and type = 'U' and SCHEMA_NAME(schema_id) = 'migration')
begin
	create table migration.MigrationSignature
	(
		Id int identity(1, 1) constraint PK_MigrationSignature primary key,
		MigrationDate Datetime not null,
		MachineName varchar(30) not null,
		LastVersion varchar(20) not null
	)
end

if not exists (select top 1 1 from sys.objects where name = 'MigratedVersion' and type = 'U' and SCHEMA_NAME(schema_id) = 'migration')
begin
	create table migration.MigratedVersion
	(
		Id int identity(1, 1) constraint PK_MigratedVersion primary key,
		SignatureId int constraint FK_MigratedVersion_MigrationSignature foreign key references migration.MigrationSignature(Id),
		[Version] varchar(20) not null
	)
end

if not exists (select top 1 1 from sys.objects where name = 'MigratedScript' and type = 'U' and SCHEMA_NAME(schema_id) = 'migration')
begin
	create table migration.MigratedScript
	(
		Id int identity(1, 1) constraint PK_MigratedScript primary key,
		VersionId int constraint FK_MigratedScript_MigratedVersion foreign key references migration.MigratedVersion(Id),
		Script varchar(250) not null
	)
end