using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace MaBibli.Api.Data.Migrations { /// public partial class InitialCreate : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Auteurs", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Nom = table.Column(type: "TEXT", nullable: false), NomNormalise = table.Column(type: "TEXT", nullable: false), CleRegroupement = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Auteurs", x => x.Id); }); migrationBuilder.CreateTable( name: "BibliographiesMasquees", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), AuteurId = table.Column(type: "INTEGER", nullable: false), Utilisateur = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_BibliographiesMasquees", x => x.Id); }); migrationBuilder.CreateTable( name: "Livres", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Isbn = table.Column(type: "TEXT", nullable: true), Titre = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false), Editeur = table.Column(type: "TEXT", nullable: true), Format = table.Column(type: "INTEGER", nullable: false), TypeDocument = table.Column(type: "INTEGER", nullable: false), NombrePages = table.Column(type: "INTEGER", nullable: true), CoverUrl = table.Column(type: "TEXT", nullable: true), UrlNotice = table.Column(type: "TEXT", nullable: true), DateAjout = table.Column(type: "TEXT", nullable: false), AjoutePar = table.Column(type: "TEXT", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Livres", x => x.Id); }); migrationBuilder.CreateTable( name: "LivresSouhaites", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Utilisateur = table.Column(type: "TEXT", nullable: false), Titre = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false), Auteur = table.Column(type: "TEXT", nullable: true), AuteurNormalise = table.Column(type: "TEXT", nullable: false, defaultValue: ""), Editeur = table.Column(type: "TEXT", nullable: true), Annee = table.Column(type: "TEXT", nullable: true), Isbn = table.Column(type: "TEXT", nullable: true), CoverUrl = table.Column(type: "TEXT", nullable: true), Note = table.Column(type: "TEXT", nullable: true), DateAjout = table.Column(type: "TEXT", nullable: false), Rang = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_LivresSouhaites", x => x.Id); }); migrationBuilder.CreateTable( name: "RapprochementsRefuses", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), AuteurAId = table.Column(type: "INTEGER", nullable: false), AuteurBId = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RapprochementsRefuses", x => x.Id); }); migrationBuilder.CreateTable( name: "Revues", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Titre = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false), Issn = table.Column(type: "TEXT", nullable: true), Editeur = table.Column(type: "TEXT", nullable: true), DateAjout = table.Column(type: "TEXT", nullable: false), AjoutePar = table.Column(type: "TEXT", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Revues", x => x.Id); }); migrationBuilder.CreateTable( name: "RevuesSouhaitees", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Utilisateur = table.Column(type: "TEXT", nullable: false), Titre = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false), Numero = table.Column(type: "TEXT", nullable: true), NumeroNormalise = table.Column(type: "TEXT", nullable: false, defaultValue: ""), Issn = table.Column(type: "TEXT", nullable: true), Note = table.Column(type: "TEXT", nullable: true), DateAjout = table.Column(type: "TEXT", nullable: false), Rang = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_RevuesSouhaitees", x => x.Id); }); migrationBuilder.CreateTable( name: "Series", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Titre = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false), SerieParenteId = table.Column(type: "INTEGER", nullable: true), Position = table.Column(type: "INTEGER", nullable: false), DateAjout = table.Column(type: "TEXT", nullable: false), AjoutePar = table.Column(type: "TEXT", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Series", x => x.Id); table.ForeignKey( name: "FK_Series_Series_SerieParenteId", column: x => x.SerieParenteId, principalTable: "Series", principalColumn: "Id", onDelete: ReferentialAction.SetNull); }); migrationBuilder.CreateTable( name: "Themes", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Nom = table.Column(type: "TEXT", nullable: false), NomNormalise = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Themes", x => x.Id); }); migrationBuilder.CreateTable( name: "LivreAuteurs", columns: table => new { LivreId = table.Column(type: "INTEGER", nullable: false), AuteurId = table.Column(type: "INTEGER", nullable: false), Position = table.Column(type: "INTEGER", nullable: false), Role = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_LivreAuteurs", x => new { x.LivreId, x.AuteurId }); table.ForeignKey( name: "FK_LivreAuteurs_Auteurs_AuteurId", column: x => x.AuteurId, principalTable: "Auteurs", principalColumn: "Id", onDelete: ReferentialAction.Restrict); table.ForeignKey( name: "FK_LivreAuteurs_Livres_LivreId", column: x => x.LivreId, principalTable: "Livres", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "Prets", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), LivreId = table.Column(type: "INTEGER", nullable: false), Emprunteur = table.Column(type: "TEXT", nullable: false), DatePret = table.Column(type: "TEXT", nullable: false), DateRetour = table.Column(type: "TEXT", nullable: true) }, constraints: table => { table.PrimaryKey("PK_Prets", x => x.Id); table.ForeignKey( name: "FK_Prets_Livres_LivreId", column: x => x.LivreId, principalTable: "Livres", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "StatutsLecture", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), LivreId = table.Column(type: "INTEGER", nullable: false), Utilisateur = table.Column(type: "TEXT", nullable: false), Statut = table.Column(type: "INTEGER", nullable: false), DateMaj = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_StatutsLecture", x => x.Id); table.ForeignKey( name: "FK_StatutsLecture_Livres_LivreId", column: x => x.LivreId, principalTable: "Livres", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "NumerosRevue", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), RevueId = table.Column(type: "INTEGER", nullable: false), Numero = table.Column(type: "TEXT", nullable: false), NumeroNormalise = table.Column(type: "TEXT", nullable: false), DateParution = table.Column(type: "TEXT", nullable: true), Note = table.Column(type: "TEXT", nullable: true), CoverUrl = table.Column(type: "TEXT", nullable: true), DateAjout = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_NumerosRevue", x => x.Id); table.ForeignKey( name: "FK_NumerosRevue_Revues_RevueId", column: x => x.RevueId, principalTable: "Revues", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "ElementsSerie", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), SerieId = table.Column(type: "INTEGER", nullable: false), Position = table.Column(type: "INTEGER", nullable: false), LivreId = table.Column(type: "INTEGER", nullable: true), Titre = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ElementsSerie", x => x.Id); table.ForeignKey( name: "FK_ElementsSerie_Livres_LivreId", column: x => x.LivreId, principalTable: "Livres", principalColumn: "Id", onDelete: ReferentialAction.SetNull); table.ForeignKey( name: "FK_ElementsSerie_Series_SerieId", column: x => x.SerieId, principalTable: "Series", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( name: "LivreThemes", columns: table => new { LivreId = table.Column(type: "INTEGER", nullable: false), ThemeId = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_LivreThemes", x => new { x.LivreId, x.ThemeId }); table.ForeignKey( name: "FK_LivreThemes_Livres_LivreId", column: x => x.LivreId, principalTable: "Livres", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_LivreThemes_Themes_ThemeId", column: x => x.ThemeId, principalTable: "Themes", principalColumn: "Id", onDelete: ReferentialAction.Restrict); }); migrationBuilder.CreateTable( name: "ArticlesUne", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), NumeroRevueId = table.Column(type: "INTEGER", nullable: false), Titre = table.Column(type: "TEXT", nullable: false), TitreNormalise = table.Column(type: "TEXT", nullable: false), Position = table.Column(type: "INTEGER", nullable: false) }, constraints: table => { table.PrimaryKey("PK_ArticlesUne", x => x.Id); table.ForeignKey( name: "FK_ArticlesUne_NumerosRevue_NumeroRevueId", column: x => x.NumeroRevueId, principalTable: "NumerosRevue", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( name: "IX_ArticlesUne_NumeroRevueId_TitreNormalise", table: "ArticlesUne", columns: new[] { "NumeroRevueId", "TitreNormalise" }, unique: true); migrationBuilder.CreateIndex( name: "IX_Auteurs_CleRegroupement", table: "Auteurs", column: "CleRegroupement", unique: true); migrationBuilder.CreateIndex( name: "IX_Auteurs_NomNormalise", table: "Auteurs", column: "NomNormalise"); migrationBuilder.CreateIndex( name: "IX_BibliographiesMasquees_Auteur_Utilisateur_Titre", table: "BibliographiesMasquees", columns: new[] { "AuteurId", "Utilisateur", "TitreNormalise" }, unique: true); migrationBuilder.CreateIndex( name: "IX_BibliographiesMasquees_Utilisateur_AuteurId", table: "BibliographiesMasquees", columns: new[] { "Utilisateur", "AuteurId" }); migrationBuilder.CreateIndex( name: "IX_ElementsSerie_LivreId", table: "ElementsSerie", column: "LivreId"); migrationBuilder.CreateIndex( name: "IX_ElementsSerie_SerieId", table: "ElementsSerie", column: "SerieId"); migrationBuilder.CreateIndex( name: "IX_ElementsSerie_SerieId_LivreId", table: "ElementsSerie", columns: new[] { "SerieId", "LivreId" }, unique: true, filter: "\"LivreId\" IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_LivreAuteurs_AuteurId", table: "LivreAuteurs", column: "AuteurId"); migrationBuilder.CreateIndex( name: "IX_Livres_Isbn", table: "Livres", column: "Isbn"); migrationBuilder.CreateIndex( name: "IX_Livres_TitreNormalise", table: "Livres", column: "TitreNormalise"); migrationBuilder.CreateIndex( name: "IX_LivresSouhaites_Utilisateur", table: "LivresSouhaites", column: "Utilisateur"); migrationBuilder.CreateIndex( name: "IX_LivresSouhaites_Utilisateur_Oeuvre", table: "LivresSouhaites", columns: new[] { "Utilisateur", "TitreNormalise", "AuteurNormalise" }, unique: true); migrationBuilder.CreateIndex( name: "IX_LivreThemes_ThemeId", table: "LivreThemes", column: "ThemeId"); migrationBuilder.CreateIndex( name: "IX_NumerosRevue_RevueId_NumeroNormalise", table: "NumerosRevue", columns: new[] { "RevueId", "NumeroNormalise" }, unique: true); migrationBuilder.CreateIndex( name: "IX_Prets_LivreId", table: "Prets", column: "LivreId"); migrationBuilder.CreateIndex( name: "IX_Prets_LivreId_EnCours", table: "Prets", column: "LivreId", unique: true, filter: "\"DateRetour\" IS NULL"); migrationBuilder.CreateIndex( name: "IX_RapprochementsRefuses_AuteurAId_AuteurBId", table: "RapprochementsRefuses", columns: new[] { "AuteurAId", "AuteurBId" }, unique: true); migrationBuilder.CreateIndex( name: "IX_Revues_Issn", table: "Revues", column: "Issn", unique: true, filter: "\"Issn\" IS NOT NULL"); migrationBuilder.CreateIndex( name: "IX_Revues_TitreNormalise", table: "Revues", column: "TitreNormalise", unique: true); migrationBuilder.CreateIndex( name: "IX_RevuesSouhaitees_Utilisateur", table: "RevuesSouhaitees", column: "Utilisateur"); migrationBuilder.CreateIndex( name: "IX_RevuesSouhaitees_Utilisateur_Revue", table: "RevuesSouhaitees", columns: new[] { "Utilisateur", "TitreNormalise", "NumeroNormalise" }, unique: true); migrationBuilder.CreateIndex( name: "IX_Series_SerieParenteId", table: "Series", column: "SerieParenteId"); migrationBuilder.CreateIndex( name: "IX_Series_TitreNormalise", table: "Series", column: "TitreNormalise", unique: true); migrationBuilder.CreateIndex( name: "IX_StatutsLecture_LivreId_Utilisateur", table: "StatutsLecture", columns: new[] { "LivreId", "Utilisateur" }, unique: true); migrationBuilder.CreateIndex( name: "IX_StatutsLecture_Utilisateur", table: "StatutsLecture", column: "Utilisateur"); migrationBuilder.CreateIndex( name: "IX_Themes_NomNormalise", table: "Themes", column: "NomNormalise", unique: true); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ArticlesUne"); migrationBuilder.DropTable( name: "BibliographiesMasquees"); migrationBuilder.DropTable( name: "ElementsSerie"); migrationBuilder.DropTable( name: "LivreAuteurs"); migrationBuilder.DropTable( name: "LivresSouhaites"); migrationBuilder.DropTable( name: "LivreThemes"); migrationBuilder.DropTable( name: "Prets"); migrationBuilder.DropTable( name: "RapprochementsRefuses"); migrationBuilder.DropTable( name: "RevuesSouhaitees"); migrationBuilder.DropTable( name: "StatutsLecture"); migrationBuilder.DropTable( name: "NumerosRevue"); migrationBuilder.DropTable( name: "Series"); migrationBuilder.DropTable( name: "Auteurs"); migrationBuilder.DropTable( name: "Themes"); migrationBuilder.DropTable( name: "Livres"); migrationBuilder.DropTable( name: "Revues"); } } }