mirror of https://github.com/Sonarr/Sonarr
170 lines
12 KiB
C#
170 lines
12 KiB
C#
using System;
|
|
using System.Data;
|
|
using Migrator.Framework;
|
|
using NzbDrone.Common;
|
|
|
|
namespace NzbDrone.Core.Datastore.Migrations
|
|
{
|
|
|
|
[Migration(20110707)]
|
|
public class Migration20110707 : NzbDroneMigration
|
|
{
|
|
protected override void MainDbUpgrade()
|
|
{
|
|
//This should not run unless for a clean install
|
|
EnviromentProvider.RegisterNewInstall = true;
|
|
|
|
Database.AddTable("Series", new[]
|
|
{
|
|
new Column("SeriesId", DbType.Int32, ColumnProperty.PrimaryKey),
|
|
new Column("Title", DbType.String, ColumnProperty.Null),
|
|
new Column("CleanTitle", DbType.String, ColumnProperty.Null),
|
|
new Column("Status", DbType.String, ColumnProperty.Null),
|
|
new Column("Overview", DbType.String,4000, ColumnProperty.Null),
|
|
new Column("AirsDayOfWeek", DbType.Int32, ColumnProperty.Null),
|
|
new Column("AirTimes", DbType.String, ColumnProperty.Null),
|
|
new Column("Language", DbType.String, ColumnProperty.Null),
|
|
new Column("Path", DbType.String,4000, ColumnProperty.NotNull),
|
|
new Column("Monitored", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("QualityProfileId", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("SeasonFolder", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("LastInfoSync", DbType.DateTime, ColumnProperty.Null),
|
|
new Column("LastDiskSync", DbType.DateTime, ColumnProperty.Null)
|
|
});
|
|
|
|
Database.AddTable("Episodes", new[]
|
|
{
|
|
new Column("EpisodeId", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("TvDbEpisodeId", DbType.Int32, ColumnProperty.Null),
|
|
new Column("SeriesId", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("SeasonNumber", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("EpisodeNumber", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("Title", DbType.String,100, ColumnProperty.Null),
|
|
new Column("Overview", DbType.String,4000, ColumnProperty.Null),
|
|
new Column("Ignored", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("EpisodeFileId", DbType.Int32, ColumnProperty.Null),
|
|
new Column("AirDate", DbType.DateTime, ColumnProperty.Null),
|
|
new Column("GrabDate", DbType.DateTime, ColumnProperty.Null)
|
|
});
|
|
|
|
var indexName = MigrationsHelper.GetIndexName("Episodes", "SeriesId");
|
|
Database.AddIndex(indexName, "Episodes", "SeriesId");
|
|
|
|
indexName = MigrationsHelper.GetIndexName("Episodes", "EpisodeFileId");
|
|
Database.AddIndex(indexName, "Episodes", "EpisodeFileId");
|
|
|
|
indexName = MigrationsHelper.GetIndexName("Episodes", "AirDate");
|
|
Database.AddIndex(indexName, "Episodes", "AirDate");
|
|
|
|
indexName = MigrationsHelper.GetIndexName("Episodes", "TvDbEpisodeId");
|
|
Database.AddIndex(indexName, "Episodes", "TvDbEpisodeId");
|
|
|
|
|
|
Database.AddTable("EpisodeFiles", new[]
|
|
{
|
|
new Column("EpisodeFileId", DbType.Int32,
|
|
ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("SeriesId", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("Path", DbType.String,4000, ColumnProperty.NotNull),
|
|
new Column("Quality", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("Proper", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("Size", DbType.Int64, ColumnProperty.NotNull),
|
|
new Column("DateAdded", DbType.DateTime, ColumnProperty.NotNull),
|
|
new Column("SeasonNumber", DbType.Int32, ColumnProperty.NotNull)
|
|
});
|
|
|
|
indexName = MigrationsHelper.GetIndexName("EpisodeFiles", "SeriesId");
|
|
Database.AddIndex(indexName, "Episodes", "SeriesId");
|
|
|
|
|
|
Database.AddTable("Config", new[]
|
|
{
|
|
new Column("Key", DbType.String, ColumnProperty.PrimaryKey),
|
|
new Column("Value", DbType.String, ColumnProperty.NotNull)
|
|
});
|
|
|
|
Database.AddTable("SceneMappings", new[]
|
|
{
|
|
new Column("CleanTitle", DbType.String, ColumnProperty.PrimaryKey),
|
|
new Column("SeriesId", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("SceneName", DbType.String, ColumnProperty.NotNull)
|
|
});
|
|
|
|
Database.AddTable("History", new[]
|
|
{
|
|
new Column("HistoryId", DbType.Int64, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("EpisodeId", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("SeriesId", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("NzbTitle", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Date", DbType.DateTime, ColumnProperty.NotNull),
|
|
new Column("Quality", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("IsProper", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("Indexer", DbType.String, ColumnProperty.NotNull)
|
|
});
|
|
|
|
indexName = MigrationsHelper.GetIndexName("History", "EpisodeId");
|
|
Database.AddIndex(indexName, "History", "EpisodeId");
|
|
|
|
indexName = MigrationsHelper.GetIndexName("History", "SeriesId");
|
|
Database.AddIndex(indexName, "History", "SeriesId");
|
|
|
|
Database.AddTable("RootDirs", new[]
|
|
{
|
|
new Column("Id", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("Path", DbType.String, 4000, ColumnProperty.NotNull)
|
|
});
|
|
|
|
Database.AddTable("ExternalNotificationSettings", new[]
|
|
{
|
|
new Column("Id", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("Enabled", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("NotifierName", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Name", DbType.String, ColumnProperty.NotNull)
|
|
});
|
|
|
|
Database.AddTable("JobDefinitions", new[]
|
|
{
|
|
new Column("Id", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("Enable", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("TypeName", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Name", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Interval", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("LastExecution", DbType.DateTime, ColumnProperty.NotNull),
|
|
new Column("Success", DbType.Boolean, ColumnProperty.NotNull)
|
|
});
|
|
|
|
Database.AddTable("QualityProfiles", new[]
|
|
{
|
|
new Column("QualityProfileId", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("Name", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Cutoff", DbType.Int32, ColumnProperty.NotNull),
|
|
new Column("SonicAllowed", DbType.String, ColumnProperty.NotNull),
|
|
});
|
|
|
|
Database.AddTable("IndexerDefinitions", new[]
|
|
{
|
|
new Column("Id", DbType.Int32, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("Enable", DbType.Boolean, ColumnProperty.NotNull),
|
|
new Column("IndexProviderType", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Name", DbType.String, ColumnProperty.NotNull),
|
|
});
|
|
}
|
|
|
|
|
|
protected override void LogDbUpgrade()
|
|
{
|
|
|
|
Database.AddTable("Logs", new[]
|
|
{
|
|
new Column("LogId", DbType.Int64, ColumnProperty.PrimaryKeyWithIdentity),
|
|
new Column("Message", DbType.String,4000, ColumnProperty.NotNull),
|
|
new Column("Time", DbType.DateTime, ColumnProperty.NotNull),
|
|
new Column("Logger", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Method", DbType.String, ColumnProperty.NotNull),
|
|
new Column("Exception", DbType.String,4000, ColumnProperty.Null),
|
|
new Column("ExceptionType", DbType.String, ColumnProperty.Null),
|
|
new Column("Level", DbType.String, ColumnProperty.NotNull)
|
|
});
|
|
}
|
|
}
|
|
} |