Migrazione from Lumen to Laravel » History » Version 18
Fluidone Morinmoto, 05/29/2021 02:42 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 | 17 | Fluidone Morinmoto | Installare il package doctrine/dbal |
22 | |||
23 | <pre> |
||
24 | $ composer require doctrine/dbal |
||
25 | </pre> |
||
26 | |||
27 | 3 | Fluidone Morinmoto | Installare il package dei permessi |
28 | |||
29 | <pre> |
||
30 | $ composer require spatie/laravel-permission |
||
31 | </pre> |
||
32 | 5 | Fluidone Morinmoto | |
33 | 6 | Fluidone Morinmoto | Creare il file .env partendo dal .env.example di Laravel e copiarci i valori del file .env originale del progetto Lumen. |
34 | |||
35 | Copiare i file delle migration che abbiamo già scritto nella cartella delle migration del nuovo progetto Laravel |
||
36 | |||
37 | <pre> |
||
38 | $ cp ../panizahomebrew_backend_lumen/database/migrations/* database/migrations/ |
||
39 | </pre> |
||
40 | 7 | Fluidone Morinmoto | |
41 | Verificare di non avere a database delle tabelle con i seguenti nomi: |
||
42 | |||
43 | 18 | Fluidone Morinmoto | * failed_jobs |
44 | * model_has_permissions; |
||
45 | * model_has_roles; |
||
46 | 1 | Fluidone Morinmoto | * password_resets; |
47 | 18 | Fluidone Morinmoto | * permissions; |
48 | * roles; |
||
49 | * role_has_permissions; |
||
50 | * users; |
||
51 | 7 | Fluidone Morinmoto | |
52 | In tal caso creare una migration per rinominarle temporaneamente, se non vogliamo cancellarle: |
||
53 | |||
54 | <pre> |
||
55 | $ php artisan make:migration rename_tables_pre_laravel_migration |
||
56 | 8 | Fluidone Morinmoto | </pre> |
57 | 11 | Fluidone Morinmoto | |
58 | 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. |
59 | 1 | Fluidone Morinmoto | |
60 | 11 | Fluidone Morinmoto | <pre> |
61 | $ 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 |
||
62 | </pre> |
||
63 | 12 | Fluidone Morinmoto | |
64 | 11 | Fluidone Morinmoto | Scrivere la migration prendendo ad esempio quanto segue: |
65 | |||
66 | 10 | Fluidone Morinmoto | <pre> |
67 | <?php |
||
68 | |||
69 | use Illuminate\Database\Migrations\Migration; |
||
70 | use Illuminate\Database\Schema\Blueprint; |
||
71 | use Illuminate\Support\Facades\Schema; |
||
72 | |||
73 | class RenameTablesPreLaravelMigration extends Migration |
||
74 | { |
||
75 | 1 | Fluidone Morinmoto | private $tables_to_rename = [ |
76 | 15 | Fluidone Morinmoto | 'users' => 'users_phb' |
77 | 10 | Fluidone Morinmoto | // Altre tabelle tra quelle elencate qua sopra |
78 | ]; |
||
79 | /** |
||
80 | * Run the migrations. |
||
81 | * |
||
82 | * @return void |
||
83 | */ |
||
84 | public function up() |
||
85 | { |
||
86 | foreach ($this->tables_to_rename as $old_name => $new_name) { |
||
87 | print_r( |
||
88 | sprintf("\nRename '%s' => '%s'..", $old_name, $new_name) |
||
89 | ); |
||
90 | Schema::rename($old_name, $new_name); |
||
91 | } |
||
92 | print_r("\n[ OK ]\n"); |
||
93 | } |
||
94 | |||
95 | /** |
||
96 | * Reverse the migrations. |
||
97 | * |
||
98 | * @return void |
||
99 | */ |
||
100 | public function down() |
||
101 | { |
||
102 | foreach ($this->tables_to_rename as $old_name => $new_name) { |
||
103 | 8 | Fluidone Morinmoto | Schema::rename($new_name, $old_name); |
104 | } |
||
105 | } |
||
106 | } |
||
107 | 9 | Fluidone Morinmoto | </pre> |
108 | |||
109 | Pulire la cache di artisan per sicurezza |
||
110 | |||
111 | <pre> |
||
112 | $ php artisan config:clear |
||
113 | 13 | Fluidone Morinmoto | </pre> |
114 | |||
115 | Se non si vuole reimpostare il repository git, copiare la cartella @.git@ del progetto Lumen nel nuovo progetto Laravel |
||
116 | |||
117 | <pre> |
||
118 | $ cp -R ../panizahomebrew_backend_lumen/.git ./ |
||
119 | 14 | Fluidone Morinmoto | </pre> |
120 | |||
121 | 16 | Fluidone Morinmoto | Eventualmente adeguare il file @.gitignore@ con ulteriori file da ignorare (in questo caso non è servito) |
122 | |||
123 | Eseguire le migrations |
||
124 | |||
125 | <pre> |
||
126 | $ php artisan migrate |
||
127 | </pre> |
||
128 | |||
129 | 1 | Fluidone Morinmoto | Copiare eventuali file precedentemente creati nella cartella @app/@ dal progetto Lumen al nuovo progetto Laravel. |