Betriebssicherheit: Sperre gegen parallele Läufe, Upsert, Batch-Schreiben für Postgres, Zeichensatz für CSV

This commit is contained in:
wkh
2026-10-09 21:38:54 +02:00
parent a86caf5364
commit 48c900558b
15 changed files with 467 additions and 21 deletions
+11
View File
@@ -92,4 +92,15 @@ class SqliteStorageTest < PipelineTest
assert_equal 'Deutschland', names['DE']['name']
end
end
def test_upsert_with_created_unique_index
with_tmpdir do |dir|
writer = DataPipeline::SqliteStorage.new(database: "#{dir}/u.sqlite3", table: 'u', create: true, upsert: %w[belnr])
writer.write([{ 'belnr' => 'A', 'betrag' => 1.0 }, { 'belnr' => 'B', 'betrag' => 2.0 }])
writer.write([{ 'belnr' => 'A', 'betrag' => 5.0 }])
writer.write_row({ 'belnr' => 'B' })
assert_equal [['A', 5.0], ['B', 2.0]], writer.query(query: 'select belnr, betrag from u order by belnr').map(&:values)
writer.close
end
end
end