added first working db init and startup

This commit is contained in:
2019-01-25 00:07:05 +01:00
parent 73857eed51
commit c3b27080f2
6 changed files with 33 additions and 120 deletions

View File

@@ -1,41 +0,0 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Tv7Playlist.Data;
namespace Tv7Playlist.Data.Migrations
{
[DbContext(typeof(PlaylistContext))]
[Migration("20181209233600_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.2.0-rtm-35687");
modelBuilder.Entity("Tv7Playlist.Data.PlaylistEntry", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd();
b.Property<string>("Name");
b.Property<int>("TrackNumber");
b.Property<string>("Url");
b.HasKey("Id");
b.HasAlternateKey("TrackNumber");
b.ToTable("PlaylistEntries");
});
#pragma warning restore 612, 618
}
}
}

View File

@@ -1,70 +0,0 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace Tv7Playlist.Data.Migrations
{
public partial class AddedEnabledAvailableNameOverride : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropUniqueConstraint(
name: "AK_PlaylistEntries_TrackNumber",
table: "PlaylistEntries");
migrationBuilder.AddColumn<bool>(
name: "IsAvailable",
table: "PlaylistEntries",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "IsEnabled",
table: "PlaylistEntries",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<string>(
name: "NameOverride",
table: "PlaylistEntries",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_PlaylistEntries_Name",
table: "PlaylistEntries",
column: "Name");
migrationBuilder.CreateIndex(
name: "IX_PlaylistEntries_TrackNumber",
table: "PlaylistEntries",
column: "TrackNumber",
unique: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_PlaylistEntries_Name",
table: "PlaylistEntries");
migrationBuilder.DropIndex(
name: "IX_PlaylistEntries_TrackNumber",
table: "PlaylistEntries");
migrationBuilder.DropColumn(
name: "IsAvailable",
table: "PlaylistEntries");
migrationBuilder.DropColumn(
name: "IsEnabled",
table: "PlaylistEntries");
migrationBuilder.DropColumn(
name: "NameOverride",
table: "PlaylistEntries");
migrationBuilder.AddUniqueConstraint(
name: "AK_PlaylistEntries_TrackNumber",
table: "PlaylistEntries",
column: "TrackNumber");
}
}
}

View File

@@ -9,8 +9,8 @@ using Tv7Playlist.Data;
namespace Tv7Playlist.Data.Migrations
{
[DbContext(typeof(PlaylistContext))]
[Migration("20190124221302_AddedEnabledAvailableNameOverride")]
partial class AddedEnabledAvailableNameOverride
[Migration("20190124230424_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{

View File

@@ -8,25 +8,38 @@ namespace Tv7Playlist.Data.Migrations
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
"PlaylistEntries",
table => new
name: "PlaylistEntries",
columns: table => new
{
Id = table.Column<Guid>(nullable: false),
TrackNumber = table.Column<int>(nullable: false),
Name = table.Column<string>(nullable: true),
Url = table.Column<string>(nullable: true)
NameOverride = table.Column<string>(nullable: true),
Url = table.Column<string>(nullable: true),
IsAvailable = table.Column<bool>(nullable: false),
IsEnabled = table.Column<bool>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_PlaylistEntries", x => x.Id);
table.UniqueConstraint("AK_PlaylistEntries_TrackNumber", x => x.TrackNumber);
});
migrationBuilder.CreateIndex(
name: "IX_PlaylistEntries_Name",
table: "PlaylistEntries",
column: "Name");
migrationBuilder.CreateIndex(
name: "IX_PlaylistEntries_TrackNumber",
table: "PlaylistEntries",
column: "TrackNumber",
unique: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
"PlaylistEntries");
name: "PlaylistEntries");
}
}
}
}

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>

View File

@@ -60,6 +60,9 @@ namespace Tv7Playlist
app.UseHsts();
}
InitializeDatabase(app);
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
@@ -72,6 +75,14 @@ namespace Tv7Playlist
});
}
private void InitializeDatabase(IApplicationBuilder app)
{
using (var scope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
{
scope.ServiceProvider.GetRequiredService<PlaylistContext>().Database.Migrate();
}
}
private void ConfigureParser(IServiceCollection services, IAppConfig appConfig)
{
services.AddTransient<IPlaylistLoader, PlaylistLoader>();