IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft Azure Discussion :

C# - Asp.net EF6 - Migration automatique Code First - déploiement Azure [Débutant]


Sujet :

Microsoft Azure

  1. #1
    Invité
    Invité(e)
    Par défaut C# - Asp.net EF6 - Migration automatique Code First - déploiement Azure
    Bonjour,

    Je suis sur la touche depuis quelque semaine sur le sujet de la migration automatique de la base de donnée.

    J'ai suivi ce tuto de Microsoft: https://docs.microsoft.com/fr-fr/azu...et-sqldatabase

    En Local, pour remplir la basse de donnée (la création des tables sont automatique ... ^^' ), je tape "update-database" dans la console, c'est fonctionnel.
    Par contre, impossible de comprendre pourquoi une fois que je lance le déploiement, elle ne marche pas (encore une fois, juste la création des tables, mais pas de contenu)

    je n'arrive absolument pas a comprendre comment faire. Avez vous des solutions ?

    merci merci
    Dernière modification par DotNetMatt ; 21/07/2017 à 19h38. Motif: Prefixe debutant

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    "Ca ne marche pas", on ne va pas aller bien loin avec ca ! Donne nous plus d'info

    Tu essaies de creer la structure de la base ou d'inserer des donnees au premier chargement du site ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour, Merci de ta réponse DotNetMatt.

    En réalité, je ne sais pas vraiment. Dans la finalité, je souhaite faire une SPA sous angular.

    Je souhaite pouvoir construire les tables et des données quand je lance le déploiement (avec une addOrUpdate des données).

    j'ai déjà un projet qui marche super en local, mais qui ne marche pas sur azure. Du coup, j'ai refais une application pour tester le plus possible et comprendre pourquoi cela ne marche pas.

    Je voudrais partir sur une base simple de projet: une projet Api avec authentification local (celui que propose VS2017)

    1: je fais mon model

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    namespace MigrationAutoCodeFirst.Models
    {
        public class Article
        {
            public Article() {}
     
            public int Id { get; set; }
            public string Titre { get; set; }
            public string Markdown { get; set; }
            public bool Public { get; set; }
        }
    }
    2 : je lance dans le PowerShell: Enable-Migrations

    3 : je crée une migration: Add-Migration initial

    qui me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    namespace MigrationAutoCodeFirst.Migrations
    {
        using System;
        using System.Data.Entity.Migrations;
     
        public partial class initial : DbMigration
        {
            public override void Up()
            {
                CreateTable(
                    "dbo.Articles",
                    c => new
                        {
                            Id = c.Int(nullable: false, identity: true),
                            Titre = c.String(),
                            Markdown = c.String(),
                            Public = c.Boolean(nullable: false),
                        })
                    .PrimaryKey(t => t.Id);
     
                CreateTable(
                    "dbo.AspNetRoles",
                    c => new
                        {
                            Id = c.String(nullable: false, maxLength: 128),
                            Name = c.String(nullable: false, maxLength: 256),
                        })
                    .PrimaryKey(t => t.Id)
                    .Index(t => t.Name, unique: true, name: "RoleNameIndex");
     
                CreateTable(
                    "dbo.AspNetUserRoles",
                    c => new
                        {
                            UserId = c.String(nullable: false, maxLength: 128),
                            RoleId = c.String(nullable: false, maxLength: 128),
                        })
                    .PrimaryKey(t => new { t.UserId, t.RoleId })
                    .ForeignKey("dbo.AspNetRoles", t => t.RoleId, cascadeDelete: true)
                    .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
                    .Index(t => t.UserId)
                    .Index(t => t.RoleId);
     
                CreateTable(
                    "dbo.AspNetUsers",
                    c => new
                        {
                            Id = c.String(nullable: false, maxLength: 128),
                            Email = c.String(maxLength: 256),
                            EmailConfirmed = c.Boolean(nullable: false),
                            PasswordHash = c.String(),
                            SecurityStamp = c.String(),
                            PhoneNumber = c.String(),
                            PhoneNumberConfirmed = c.Boolean(nullable: false),
                            TwoFactorEnabled = c.Boolean(nullable: false),
                            LockoutEndDateUtc = c.DateTime(),
                            LockoutEnabled = c.Boolean(nullable: false),
                            AccessFailedCount = c.Int(nullable: false),
                            UserName = c.String(nullable: false, maxLength: 256),
                        })
                    .PrimaryKey(t => t.Id)
                    .Index(t => t.UserName, unique: true, name: "UserNameIndex");
     
                CreateTable(
                    "dbo.AspNetUserClaims",
                    c => new
                        {
                            Id = c.Int(nullable: false, identity: true),
                            UserId = c.String(nullable: false, maxLength: 128),
                            ClaimType = c.String(),
                            ClaimValue = c.String(),
                        })
                    .PrimaryKey(t => t.Id)
                    .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
                    .Index(t => t.UserId);
     
                CreateTable(
                    "dbo.AspNetUserLogins",
                    c => new
                        {
                            LoginProvider = c.String(nullable: false, maxLength: 128),
                            ProviderKey = c.String(nullable: false, maxLength: 128),
                            UserId = c.String(nullable: false, maxLength: 128),
                        })
                    .PrimaryKey(t => new { t.LoginProvider, t.ProviderKey, t.UserId })
                    .ForeignKey("dbo.AspNetUsers", t => t.UserId, cascadeDelete: true)
                    .Index(t => t.UserId);
     
            }
     
            public override void Down()
            {
                DropForeignKey("dbo.AspNetUserRoles", "UserId", "dbo.AspNetUsers");
                DropForeignKey("dbo.AspNetUserLogins", "UserId", "dbo.AspNetUsers");
                DropForeignKey("dbo.AspNetUserClaims", "UserId", "dbo.AspNetUsers");
                DropForeignKey("dbo.AspNetUserRoles", "RoleId", "dbo.AspNetRoles");
                DropIndex("dbo.AspNetUserLogins", new[] { "UserId" });
                DropIndex("dbo.AspNetUserClaims", new[] { "UserId" });
                DropIndex("dbo.AspNetUsers", "UserNameIndex");
                DropIndex("dbo.AspNetUserRoles", new[] { "RoleId" });
                DropIndex("dbo.AspNetUserRoles", new[] { "UserId" });
                DropIndex("dbo.AspNetRoles", "RoleNameIndex");
                DropTable("dbo.AspNetUserLogins");
                DropTable("dbo.AspNetUserClaims");
                DropTable("dbo.AspNetUsers");
                DropTable("dbo.AspNetUserRoles");
                DropTable("dbo.AspNetRoles");
                DropTable("dbo.Articles");
            }
        }
    }
    (rien qui choque normalement)

    4 : je vais dans Configuration.cs du dossier "Migrations" et je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    using MigrationAutoCodeFirst.Models;
     
    namespace MigrationAutoCodeFirst.Migrations
    {
        using System;
        using System.Data.Entity;
        using System.Data.Entity.Migrations;
        using System.Linq;
     
        internal sealed class Configuration : DbMigrationsConfiguration<MigrationAutoCodeFirst.Models.ApplicationDbContext>
        {
            public Configuration()
            {
                AutomaticMigrationsEnabled = false;// on en reparle en bas!
            }
     
            protected override void Seed(MigrationAutoCodeFirst.Models.ApplicationDbContext context)
            {
                context.Articles.AddOrUpdate(new Article()
                {
                    Titre = "un titre", Markdown = "Un Texte d'exemple", Public = true
                });
     
                context.SaveChanges();
            }
        }
    }
    5 : dans le PowerShell: Update-Database

    6 : J'ai bien en local la création des tables et des données! Par contre l'option "AutomaticMigrationsEnabled" ne semble pas fonctionner. (suppression de la DB)

    Je passe donc sur la publication du site sur azure.

    Je configure tout en je prend la formule qui est gratos, je créer une DB avant et je publie.
    Le site se lance, je retourne sur VS2017 et active la migration automatique dans le menu de publication.

    le site se relance, je check la DB via l'explorateur d’Objets SQL Server: les tables sont crée, mais pas le contenu.

    je ne comprend pas pourquoi.

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé une solution.

    https://dillieodigital.wordpress.com...configuration/

    Je fermerais la discutions par un "résolu" si jamais vous avez pas de meilleurs solutions.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/12/2010, 08h56
  2. [ASP.Net - Culture] - Migration Framework 1.1 vers 3.5
    Par Anto03 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 02/11/2009, 14h56
  3. question de débutant en asp.net
    Par fedia76 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/06/2009, 09h53
  4. Réponses: 2
    Dernier message: 07/01/2008, 11h46
  5. [asp.net] webcontrol déclaré en code behind
    Par thewaterkidny dans le forum ASP.NET
    Réponses: 7
    Dernier message: 25/06/2007, 13h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo