Postgress изображение в Docker изменить параметры сортировки для существующего столбца или для БД - PullRequest
0 голосов
/ 04 мая 2020

Я столкнулся с проблемой сортировки по имени с swedi sh данными. Как изменить параметры сортировки для некоторого существующего столбца или для таблицы в Postgres 9,6 в docker.

, когда я пытаюсь изменить его для таблицы

alter table brnad convert to character set utf8 collate utf8_swedish_ci;

, с ошибкой

> ERROR: syntax error at or near "convert"

, когда я пытаюсь использовать для столбца

ALTER TABLE brand ALTER COLUMN name SET DATA TYPE character varying(255) COLLATE 'utf8_swedish_ci'

с той же ошибкой

ALTER TABLE brand ALTER COLUMN name SET DATA TYPE character varying(255) COLLATE 'utf8_swedish_ci'
> ERROR:  syntax error at or near "'utf8_swedish_ci'"
  LINE 1: ...name SET DATA TYPE character varying(255) COLLATE 'utf8_swed...
                                                               ^

> Time: 0.001s

Я предположил, что возможно проблема с контейнером и исследовательской информацией о locale-gen

docker -компози. yml

postgres:
    image: postgres:9.6
    command: locale-gen sv_SE.utf8
    ports:
        - '5432:5432'
    container_name: 'postgresql'
    working_dir: /app
    restart: always
    environment:
        POSTGRES_DB: ${POSTGRES_DB}
        POSTGRES_USER: ${POSTGRES_USER}
        POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
        LANG: 'sv_SE.UTF-8'
        LANGUAGE: 'sv_SE.UTF-8'
        LC_ALL: 'sv_SE.UTF-8'
        LC_COLLATE: 'sv_SE.UTF-8'
        LC_CTYPE: 'sv_SE.UTF-8'
    volumes:
        - ./data/postgresql:/var/lib/postgresql/data
    networks:
        - php

столкнулся с другой проблемой

bash: warning: setlocale: LC_ALL: cannot change locale (sv_SE.UTF-8)
Generating locales (this might take a while)...
Generation complete.

и при каждом обновлении изображения (State Restarting) ..

при удалении commnad изображение вверх без ошибок, но когда Я ввел в образ я столкнулся с тем,

root@d09bb8a58b90:/app# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=sv_SE.UTF-8
LANGUAGE=sv_SE.UTF-8
LC_CTYPE="sv_SE.UTF-8"
LC_NUMERIC="sv_SE.UTF-8"
LC_TIME="sv_SE.UTF-8"
LC_COLLATE="sv_SE.UTF-8"
LC_MONETARY="sv_SE.UTF-8"
LC_MESSAGES="sv_SE.UTF-8"
LC_PAPER="sv_SE.UTF-8"
LC_NAME="sv_SE.UTF-8"
LC_ADDRESS="sv_SE.UTF-8"
LC_TELEPHONE="sv_SE.UTF-8"
LC_MEASUREMENT="sv_SE.UTF-8"
LC_IDENTIFICATION="sv_SE.UTF-8"
LC_ALL=sv_SE.UTF-8
root@d09bb8a58b90:/app# psql --username=minimoj
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "sv_SE.UTF-8",
    LC_ALL = "sv_SE.UTF-8",
    LC_COLLATE = "sv_SE.UTF-8",
    LC_CTYPE = "sv_SE.UTF-8",
    LANG = "sv_SE.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (sv_SE.UTF-8)
psql (9.6.17)
Type "help" for help.

, как изменить сопоставление для существующего столбца? как изменить сопоставление для существующей таблицы? Как преобразовать существующие данные в новое сопоставление, потому что данные были сохранены с en_US.UTF-8?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...