Skip to content
Snippets Groups Projects
Commit 00bf9efb authored by David Schimmel's avatar David Schimmel
Browse files

Update: Added migration for user profiles (issues/coscine#156)

parent 00d3a970
No related branches found
No related tags found
1 merge request!10Product/114 user profile migration
using FluentMigrator;
namespace Coscine.Database.Migration.Migrations
{
//yyyymmddhhmm
[Migration(201907100900)]
public class Migration201907100900UserProfilesApi : FluentMigrator.Migration
{
public override void Down()
{
#region Foreign Keys
Delete.ForeignKey()
.FromTable("GroupMemberships").ForeignColumn("UserId")
.ToTable("Users").PrimaryColumn("Id");
Delete.ForeignKey()
.FromTable("GroupMemberships").ForeignColumn("GroupId")
.ToTable("Groups").PrimaryColumn("Id");
Delete.ForeignKey()
.FromTable("ExternalIds").ForeignColumn("UserId")
.ToTable("Users").PrimaryColumn("Id");
Delete.ForeignKey()
.FromTable("ExternalIds").ForeignColumn("ResourceTypeId")
.ToTable("ExternalAuthenticators").PrimaryColumn("Id");
#endregion
#region
Delete.Table("Groups");
Delete.Table("GroupMemberships");
Delete.Table("ExternalAuthenticators");
Delete.Table("ExternalIds");
#endregion
#region Columns
Delete.Column("EmailAddress").FromTable("Users");
Delete.Column("DisplayName").FromTable("Users");
#endregion
}
public override void Up()
{
#region Existing Tables
Alter.Table("Users")
.AddColumn("EmailAddress").AsString(255).NotNullable()
.AddColumn("DisplayName").AsString(255).NotNullable();
#endregion
#region Independent Tables
Create.Table("Groups")
.WithColumn("Id").AsGuid().PrimaryKey().WithDefault(SystemMethods.NewGuid)
.WithColumn("Name").AsString(255).NotNullable();
Create.Table("ExternalAuthenticators")
.WithColumn("Id").AsGuid().PrimaryKey().WithDefault(SystemMethods.NewGuid)
.WithColumn("Name").AsString(50).NotNullable();
#endregion
#region GroupMemberships
Create.Table("GroupMemberships")
.WithColumn("RelationId").AsGuid().PrimaryKey().WithDefault(SystemMethods.NewGuid)
.WithColumn("GroupId").AsGuid().NotNullable()
.WithColumn("UserId").AsGuid().NotNullable();
Create.ForeignKey()
.FromTable("GroupMemberships").ForeignColumn("UserId")
.ToTable("Users").PrimaryColumn("Id");
Create.ForeignKey()
.FromTable("GroupMemberships").ForeignColumn("GroupId")
.ToTable("Groups").PrimaryColumn("Id");
#endregion
#region ExternalIds
Create.Table("ExternalIds")
.WithColumn("RelationId").AsGuid().PrimaryKey().WithDefault(SystemMethods.NewGuid)
.WithColumn("UserId").AsGuid().NotNullable()
.WithColumn("ResourceTypeId").AsGuid().NotNullable()
.WithColumn("ExtrenalId").AsString(255);
Create.ForeignKey()
.FromTable("ExternalIds").ForeignColumn("UserId")
.ToTable("Users").PrimaryColumn("Id");
Create.ForeignKey()
.FromTable("ExternalIds").ForeignColumn("ResourceTypeId")
.ToTable("ExternalAuthenticators").PrimaryColumn("Id");
#endregion
}
}
}
......@@ -145,6 +145,7 @@
<ItemGroup>
<Compile Include="Migrations\Migration201907011352ProjectApi.cs" />
<Compile Include="Migrations\Migration201907081510EnhanceProjectApi.cs" />
<Compile Include="Migrations\Migration201907100900UserProfilesApi.cs" />
<Compile Include="Migrator.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment