fix(db): add ON CONFLICT DO NOTHING rules for sensor table duplicate inserts
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
public function up(): void
|
||||
{
|
||||
DB::statement("
|
||||
CREATE OR REPLACE RULE rainfall_ignore_dups AS
|
||||
ON INSERT TO rainfall
|
||||
WHERE EXISTS (SELECT 1 FROM rainfall WHERE id = NEW.id)
|
||||
DO INSTEAD NOTHING
|
||||
");
|
||||
|
||||
DB::statement("
|
||||
CREATE OR REPLACE RULE waterlevel_ignore_dups AS
|
||||
ON INSERT TO waterlevel
|
||||
WHERE EXISTS (SELECT 1 FROM waterlevel WHERE id = NEW.id)
|
||||
DO INSTEAD NOTHING
|
||||
");
|
||||
|
||||
DB::statement("
|
||||
CREATE OR REPLACE RULE notification_ignore_dups AS
|
||||
ON INSERT TO notification
|
||||
WHERE EXISTS (SELECT 1 FROM notification WHERE id = NEW.id)
|
||||
DO INSTEAD NOTHING
|
||||
");
|
||||
|
||||
DB::statement("
|
||||
CREATE OR REPLACE RULE siren_ignore_dups AS
|
||||
ON INSERT TO siren
|
||||
WHERE EXISTS (SELECT 1 FROM siren WHERE id = NEW.id)
|
||||
DO INSTEAD NOTHING
|
||||
");
|
||||
|
||||
DB::statement("
|
||||
CREATE OR REPLACE RULE station_ignore_dups AS
|
||||
ON INSERT TO station
|
||||
WHERE EXISTS (SELECT 1 FROM station WHERE stationid = NEW.stationid)
|
||||
DO INSTEAD NOTHING
|
||||
");
|
||||
}
|
||||
|
||||
public function down(): void
|
||||
{
|
||||
DB::statement("DROP RULE IF EXISTS rainfall_ignore_dups ON rainfall");
|
||||
DB::statement("DROP RULE IF EXISTS waterlevel_ignore_dups ON waterlevel");
|
||||
DB::statement("DROP RULE IF EXISTS notification_ignore_dups ON notification");
|
||||
DB::statement("DROP RULE IF EXISTS siren_ignore_dups ON siren");
|
||||
DB::statement("DROP RULE IF EXISTS station_ignore_dups ON station");
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user