Project

General

Profile

Migrazione from Lumen to Laravel » History » Version 10

Fluidone Morinmoto, 05/29/2021 02:23 PM

1 1 Fluidone Morinmoto
h1. Migrazione from Lumen to Laravel
2
3
Rinominare la cartella dell'applicazione:
4
5
<pre>
6
$ mv panizahomebrew_backend panizahomebrew_backend_lumen
7
</pre>
8 2 Fluidone Morinmoto
9
Create un nuovo progetto Laravel
10
11
<pre>
12
$ composer create-project laravel/laravel panizahomebrew_backend
13
</pre>
14 3 Fluidone Morinmoto
15 4 Fluidone Morinmoto
Entrare nella cartella del nuovo progetto 
16
17
<pre>
18
$ cd panizahomebrew_backend
19
</pre>
20
21 3 Fluidone Morinmoto
Installare il package dei permessi
22
23
<pre>
24
$ composer require spatie/laravel-permission
25
</pre>
26 5 Fluidone Morinmoto
27 6 Fluidone Morinmoto
Creare il file .env partendo dal .env.example di Laravel e copiarci i valori del file .env originale del progetto Lumen.
28
29
Copiare i file delle migration che abbiamo già scritto nella cartella delle migration del nuovo progetto Laravel
30
31
<pre>
32
$ cp ../panizahomebrew_backend_lumen/database/migrations/* database/migrations/
33
</pre>
34 7 Fluidone Morinmoto
35
Verificare di non avere a database delle tabelle con i seguenti nomi:
36
37
* users
38
39
In tal caso creare una migration per rinominarle temporaneamente, se non vogliamo cancellarle:
40
41
<pre>
42
$ php artisan make:migration rename_tables_pre_laravel_migration
43
</pre>
44 8 Fluidone Morinmoto
45 10 Fluidone Morinmoto
In questo modo viene creata una migration con il timestamp odierno, che, per come funzionano le migration di Laravel, verrà eseguita per ultima. Modificare il filename in modo che sia il primo in ordine alfabetico e che venga eseguito per primo in modo da evitare conflitti. Scrivere la migration prendenda ad esempio quanto segue:
46
47
<pre>
48
<?php
49
50
use Illuminate\Database\Migrations\Migration;
51
use Illuminate\Database\Schema\Blueprint;
52
use Illuminate\Support\Facades\Schema;
53
54
class RenameTablesPreLaravelMigration extends Migration
55
{
56
    private $tables_to_rename = [
57
        'users'                 =>  'users_phb'
58
    ];
59
    /**
60
     * Run the migrations.
61
     *
62
     * @return void
63
     */
64
    public function up()
65
    {
66
        foreach ($this->tables_to_rename as $old_name => $new_name) {
67
            print_r(
68
                sprintf("\nRename '%s' => '%s'..", $old_name, $new_name)
69
            );
70
            Schema::rename($old_name, $new_name);
71
        }
72
        print_r("\n[ OK ]\n");
73
    }
74
75
    /**
76
     * Reverse the migrations.
77
     *
78
     * @return void
79
     */
80
    public function down()
81
    {
82
        foreach ($this->tables_to_rename as $old_name => $new_name) {
83
            Schema::rename($new_name, $old_name);
84
        }
85
    }
86
}
87
</pre>
88 8 Fluidone Morinmoto
89
<pre>
90
$ mv database/migrations/2021_05_29_121459_rename_tables_pre_laravel_migration.php database/migrations/2000_01_01_120000_rename_tables_pre_laravel_migration.php
91
</pre>
92 9 Fluidone Morinmoto
93
Pulire la cache di artisan per sicurezza
94
95
<pre>
96
$ php artisan config:clear
97
</pre>