Fix column/card ordering: set COLLATE C on position columns
Postgres en_US.utf8 collation sorts case-insensitively, breaking the lexicographic fractional indexing. Setting COLLATE "C" ensures pure byte-order sorting. Applied via setup-collation.sql in entrypoint after prisma db push. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,13 @@ if [ $RETRY -ge $MAX_RETRIES ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Applying position column collation fix..."
|
||||
if psql "$DATABASE_URL" -f ./scripts/setup-collation.sql; then
|
||||
echo "Collation fix applied successfully."
|
||||
else
|
||||
echo "WARNING: Failed to apply collation fix. Continuing anyway..."
|
||||
fi
|
||||
|
||||
echo "Applying RLS policies..."
|
||||
if psql "$DATABASE_URL" -f ./scripts/setup-rls.sql; then
|
||||
echo "RLS policies applied successfully."
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
-- Set COLLATE "C" on position columns so fractional indexing sorts correctly.
|
||||
-- en_US.utf8 collation is case-insensitive and breaks lexicographic ordering.
|
||||
-- This must run after prisma db push since push may reset column types.
|
||||
|
||||
ALTER TABLE columns ALTER COLUMN position SET DATA TYPE text COLLATE "C";
|
||||
ALTER TABLE cards ALTER COLUMN position SET DATA TYPE text COLLATE "C";
|
||||
Reference in New Issue
Block a user