Skip to content

Commit 90d636c

Browse files
authored
Merge pull request #449 from dbarzin/dev
Dev
2 parents d8ab286 + 16bcb23 commit 90d636c

File tree

2 files changed

+33
-19
lines changed

2 files changed

+33
-19
lines changed

database/migrations/2025_05_27_152856_change_actions.php

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,48 @@
33
use Illuminate\Database\Migrations\Migration;
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
6+
use Illuminate\Support\Facades\DB;
67

78
return new class extends Migration
89
{
9-
/**
10-
* Make the migrations.
11-
*
12-
* @return void
13-
*/
1410
public function up()
1511
{
16-
Schema::table('actions', function (Blueprint $table) {
17-
$table->integer('type')->change();
18-
$table->integer('progress')->nullable()->after('type');
19-
});
12+
$driver = DB::getDriverName();
2013

14+
if ($driver === 'pgsql') {
15+
// PostgreSQL requires manual check before conversion
16+
$invalidTypes = DB::table('actions')
17+
->whereRaw("type !~ '^\d+$'")
18+
->count();
19+
20+
if ($invalidTypes > 0) {
21+
throw new \RuntimeException("The 'type' column contains non-numeric values. Please clean up the data before running this migration.");
22+
}
23+
24+
// Explicit conversion using PostgreSQL's USING clause
25+
DB::statement('ALTER TABLE actions ALTER COLUMN type TYPE integer USING type::integer');
26+
DB::statement('ALTER TABLE actions ALTER COLUMN type SET NOT NULL');
27+
} else {
28+
// MySQL, MariaDB, SQLite: automatic or dynamic type conversion
29+
Schema::table('actions', function (Blueprint $table) {
30+
$table->integer('type')->nullable(false)->change();
31+
});
32+
}
2133
}
2234

23-
/**
24-
* Reverse the migrations.
25-
*
26-
* @return void
27-
*/
2835
public function down()
2936
{
30-
Schema::table('actions', function (Blueprint $table) {
31-
$table->string('type', 32)->change();
32-
$table->dropColumn('progress');
33-
});
37+
$driver = DB::getDriverName();
3438

39+
if ($driver === 'pgsql') {
40+
// Revert PostgreSQL changes
41+
DB::statement('ALTER TABLE actions ALTER COLUMN type TYPE text USING type::text');
42+
DB::statement('ALTER TABLE actions ALTER COLUMN type DROP NOT NULL');
43+
} else {
44+
// Revert changes for MySQL, MariaDB, SQLite
45+
Schema::table('actions', function (Blueprint $table) {
46+
$table->string('type')->nullable()->change();
47+
});
48+
}
3549
}
3650
};

storage/app/repository/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
| File | Description |
44
|--------------------------------------|--------------------------------------------------------------------------------|
55
| DORA.en.xlsx | Digital Operational Resilience Act |
6-
| HDS.fr.xlsx | Hébergeur de Données de Santé (https://esante.gouv.fr/services/hebergeurs-de-donnees-de-sante/les-referentiels-de-la-procedure-| HDS-V2.fr.xlsx | Hébergeur de Données de Santé (https://esante.gouv.fr/services/hebergeurs-de-donnees-de-sante/les-referentiels-de-la-procedure-de-certification) |
6+
| HDS.fr.xlsx | Hébergeur de Données de Santé (https://esante.gouv.fr/services/hebergeurs-de-donnees-de-sante/les-referentiels-de-la-procedure-| HDS-V2.fr.xlsx | Hébergeur de Données de Santé (https://esante.gouv.fr/services/hebergeurs-de-donnees-de-sante/les-referentiels-de-la-procedure-de-certification) |
77
| ISO22301-2019.fr.xlsx | ISO/IEC 22301, 2019, in French |
88
| ISO27001-2013.fr.xlsx | ISO/IEC 27001, 2013, in French |
99
| ISO27001-2022.en.xlsx | [ISO/IEC 27001, 2022, in English](https://www.iso.org/standard/27001) |

0 commit comments

Comments
 (0)