IDE:Asp Net Core und Server:Moodle Installieren: Unterschied zwischen den Seiten

Aus ahrensburg.city
(Unterschied zwischen Seiten)
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
// via Wikitext Extension for VSCode
 
Zeile 1: Zeile 1:
== Löschen der Datenbank in PostgreSQL ==
==Moodle Installieren==
<pre>
Um Moodle 5 mit Git zu installieren, folge diesen Schritten:
sudo -u postgres -i
psql -c "GRANT ALL PRIVILEGES ON DATABASE thorsten TO postgres;"
psql -c "drop database asp;"
</pre>


== Erstelle neue Datenbank==
# Voraussetzungen
<pre>
* Git ist installiert (`git --version`)
createdb -E UTF8 -O thorsten asp;
* PHP, Webserver (Nginx), und Datenbank (Postgrsql) sind eingerichtet
exit;
</pre>
 
== ASP.NET Core MVC mit Individual-Authentifizierung installieren ==
 
Um ein neues ASP.NET Core MVC-Projekt mit Benutzerverwaltung (Individual User Accounts) zu erstellen, führe folgenden Befehl im Terminal aus:
 
<syntaxhighlight lang="bash">
dotnet new mvc --auth Individual -o MeinMvcProjekt
cd MeinMvcProjekt
</syntaxhighlight>
 
Dadurch wird ein neues MVC-Projekt mit integrierter Benutzerregistrierung, Anmeldung und Rollenverwaltung erstellt.
 
==PostgreSQL==
Um die benötigten Pakete für die Identitätsverwaltung und die Datenbankanbindung zu installieren, führe folgende Befehle aus:
 
<syntaxhighlight lang="bash">
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
dotnet add package Microsoft.EntityFrameworkCore.Tools
</syntaxhighlight>
 
Das erste Paket integriert die Identitätsverwaltung in Entity Framework Core, das zweite Paket stellt die PostgreSQL-Unterstützung bereit.
 
=== Migrationen für die Identitätsdatenbank anwenden ===
 
Führe anschließend die Migrationen aus, um die benötigten Tabellen für die Benutzerverwaltung in der Datenbank zu erstellen:
 
<syntaxhighlight lang="bash">
dotnet ef database update
</syntaxhighlight>
 
Jetzt ist die Benutzerregistrierung und -anmeldung im Projekt verfügbar.
== Migrations löschen in ASP.NET Core ==
 
=== Begründung für das Löschen von Migrationen in ASP.NET Core ===
 
Es kann verschiedene Gründe geben, warum man alle Migrationen in einem ASP.NET Core-Projekt löschen möchte:
 
* '''Fehlerhafte Migrationen:''' Wenn Migrationen fehlerhaft erstellt wurden oder die Datenbankstruktur nicht wie gewünscht abbilden, ist es oft einfacher, alle Migrationen zu löschen und von vorne zu beginnen.
* '''Strukturelle Änderungen:''' Bei grundlegenden Änderungen am Datenmodell (z.B. Umbenennung von Tabellen, Entfernen vieler Entitäten) kann es sinnvoll sein, die Migrationen zurückzusetzen, um eine saubere Ausgangsbasis zu schaffen.
* '''Projekt-Neustart:''' In frühen Entwicklungsphasen, wenn sich das Datenmodell noch häufig ändert, ist das Löschen und Neuerstellen der Migrationen ein gängiger Schritt.
* '''Synchronisation mit der Datenbank:''' Wenn die Datenbank und die Migrationen nicht mehr synchron sind, kann ein Reset helfen, Inkonsistenzen zu beheben.
 
Beachte, dass beim Löschen der Migrationen alle bisherigen Änderungen verloren gehen. Daher sollte dieser Schritt nur durchgeführt werden, wenn keine produktiven Daten betroffen sind oder ein Backup existiert.
 
 
Um alle Migrationen im Ordner '''Migrations''' zu löschen, kannst du das folgende Kommando im Terminal ausführen:
 
<syntaxhighlight lang="bash">
rm -rf Migrations
</syntaxhighlight>
 
Dadurch wird der gesamte Migrations-Ordner und alle darin enthaltenen Dateien entfernt.
 
'''Achtung:''' Stelle sicher, dass du ein Backup hast, bevor du diesen Befehl ausführst, da alle Migrationen unwiderruflich gelöscht werden.
 
Um eine neue Migration mit dem Namen '''InitialCreate''' zu erstellen, verwende folgenden Befehl im Terminal:
 
<syntaxhighlight lang="bash">
dotnet ef migrations add InitialCreate
</syntaxhighlight>
 
Dadurch wird eine neue Migration im '''Migrations'''-Ordner angelegt, die die aktuelle Datenbankschema-Änderung beschreibt.
 
Um die Datenbank auf den neuesten Stand der Migrationen zu bringen, führe folgenden Befehl im Terminal aus:
 
<syntaxhighlight lang="bash">
dotnet ef database update
</syntaxhighlight>
 
Damit wird die Datenbank entsprechend der aktuellen Migration aktualisiert.
==Seed==
<pre>
// Notfall-Admin-Benutzer anlegen (Seed)
if (builder.Configuration.GetValue<bool>("AdminSeed:Enabled"))
{
    using (var scope = app.Services.CreateScope())
    {
        var userManager = scope.ServiceProvider.GetRequiredService<UserManager<IdentityUser>>();
        // Keine Ausgabe der Zugangsdaten im Log
          var adminEmail = Environment.GetEnvironmentVariable("ADMINSEED_EMAIL");
                       
        var adminPassword = Environment.GetEnvironmentVariable("ADMINSEED_PASSWORD");
                           
// ..
 
        var adminUser = await userManager.FindByEmailAsync(adminEmail);
        if (adminUser == null)
        {
            var user = new IdentityUser { UserName = adminEmail, Email = adminEmail, EmailConfirmed = true };
            var result = await userManager.CreateAsync(user, adminPassword);
            if (result.Succeeded)
            {
                Console.WriteLine("Notfall-Admin wurde angelegt.");
            }
            else
            {
                Console.WriteLine("Fehler beim Anlegen des Notfall-Admins:");
                foreach (var error in result.Errors)
                    Console.WriteLine(error.Description);
            }
        }
        else
        {
            Console.WriteLine("Notfall-Admin existiert bereits.");
        }
    }
}
</pre>
 
==UmgebungsVariable Nutzen==
<pre>
export ADMINSEED_EMAIL=admin@example.com
export ADMINSEED_PASSWORD=SicheresPasswort123
dotnet run
 
 
</pre>

Aktuelle Version vom 9. Juli 2025, 11:29 Uhr

Moodle Installieren

Um Moodle 5 mit Git zu installieren, folge diesen Schritten:

  1. Voraussetzungen
  • Git ist installiert (`git --version`)
  • PHP, Webserver (Nginx), und Datenbank (Postgrsql) sind eingerichtet