Skip to content

Commit

Permalink
Implement search options "with" and "without" diacritics #415
Browse files Browse the repository at this point in the history
IMPORTANT: requires PostgreSQL 13 and 'alembic upgrade head' to work
  • Loading branch information
Ivan Beloborodov committed Mar 6, 2021
1 parent 8f97a0b commit 2c0884b
Show file tree
Hide file tree
Showing 11 changed files with 605 additions and 261 deletions.
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*.buffer
*.gz
*.png
*.utf16
*.utf8
*.xlsx
*.zip
.git
pyramid.log*
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" > /etc/
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
apt-key add - && \
apt-get update && \
apt-get install -y postgresql-server-dev-10 postgresql-client-10
apt-get install -y postgresql-server-dev-13 postgresql-client-13
RUN \
pip3 install pip==9.0.1 && \
pip3 install --upgrade setuptools==40.8.0 && \
Expand Down
162 changes: 162 additions & 0 deletions alembic/versions/d15043d2cbd9_diacritic_agnostic_search.py

Large diffs are not rendered by default.

40 changes: 40 additions & 0 deletions docker/docker-alembic-proxy.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[app:main]
sqlalchemy.url = postgresql+psycopg2://lingvodoc:password@pg-proxy:5432/lingvodoc

[alembic]
script_location = alembic
sqlalchemy.url = postgresql+psycopg2://lingvodoc:password@pg-proxy:5432/lingvodoc

[loggers]
keys = root,sqlalchemy,alembic

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = WARN
handlers = console
qualname =

[logger_sqlalchemy]
level = WARN
handlers =
qualname = sqlalchemy.engine

[logger_alembic]
level = INFO
handlers =
qualname = alembic

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(levelname)-5.5s [%(name)s] %(message)s
datefmt = %H:%M:%S
4 changes: 2 additions & 2 deletions docker/docker-alembic.ini
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[app:main]
sqlalchemy.url = postgresql+psycopg2://lingvodoc:password@pg-proxy:5432/lingvodoc
sqlalchemy.url = postgresql+psycopg2://postgres:password@pg:5432/lingvodoc

[alembic]
script_location = alembic
sqlalchemy.url = postgresql+psycopg2://lingvodoc:password@pg-proxy:5432/lingvodoc
sqlalchemy.url = postgresql+psycopg2://postgres:password@pg:5432/lingvodoc

[loggers]
keys = root,sqlalchemy,alembic
Expand Down
16 changes: 8 additions & 8 deletions docker/docker-compose-proxy.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
version: '3.2'
services:
pg:
image: postgres:10.4
image: postgres:13.2
container_name: postgres
environment:
# POSTGRES_PASSWORD: password
POSTGRES_USER: lingvodoc
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
POSTGRES_DB: lingvodoc
volumes:
- ./dbdump:/docker-entrypoint-initdb.d
ports:
- "15432:5432"
pg-proxy:
image: postgres:10.4
image: postgres:13.2
container_name: postgres-proxy
environment:
# POSTGRES_PASSWORD: password
POSTGRES_USER: lingvodoc
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
POSTGRES_DB: lingvodoc
ports:
- "25432:5432"
Expand Down Expand Up @@ -80,7 +80,7 @@ services:

env_file:
- ./locale_env.sh
command: bash -c "pip3 install setuptools --upgrade && python3 setup.py clean && python3 setup.py install --react-interface=/dist && /api/wait-for-postgres.sh pg gunicorn --paster /api/docker/docker.ini"
command: bash -c "pip3 install setuptools --upgrade && python3 setup.py clean && python3 setup.py install --react-interface=/dist && /api/wait-for-postgres.sh pg && alembic --config /api/docker/docker-alembic.ini upgrade head && gunicorn --paster /api/docker/docker.ini"
ports:
- "16543:6543"
api-proxy:
Expand All @@ -101,6 +101,6 @@ services:

env_file:
- ./locale_env.sh
command: bash -c "pip3 install setuptools --upgrade && python3 setup.py clean && python3 setup.py install --react-interface=/dist && /api/wait-for-postgres.sh pg-proxy alembic -c /api/docker/docker-alembic.ini upgrade head && gunicorn --paster /api/docker/docker-proxy.ini"
command: bash -c "pip3 install setuptools --upgrade && python3 setup.py clean && python3 setup.py install --react-interface=/dist && /api/wait-for-postgres.sh pg-proxy && alembic --config /api/docker/docker-alembic-proxy.ini upgrade head && gunicorn --paster /api/docker/docker-proxy.ini"
ports:
- "26543:6543"
8 changes: 4 additions & 4 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
version: '3.2'
services:
pg:
image: postgres:10.4
image: postgres:13.2
container_name: postgres
environment:
# POSTGRES_PASSWORD: password
POSTGRES_PASSWORD: password
POSTGRES_USER: postgres
POSTGRES_DB: lingvodoc
POSTGRES_USER: lingvodoc
volumes:
- ./dbdump:/docker-entrypoint-initdb.d
ports:
Expand Down Expand Up @@ -51,6 +51,6 @@ services:

env_file:
- ./locale_env.sh
command: bash -c "python3 setup.py clean && python3 setup.py install --react-interface=/dist && /api/wait-for-postgres.sh pg gunicorn --preload --paster /api/docker/docker.ini"
command: bash -c "python3 setup.py clean && python3 setup.py install --react-interface=/dist && /api/wait-for-postgres.sh pg && alembic --config /api/docker/docker-alembic.ini upgrade head && gunicorn --preload --paster /api/docker/docker.ini"
ports:
- "16543:6543"
2 changes: 1 addition & 1 deletion docker/docker.ini
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ pyramid.includes =
pyramid_tm
# pyramid_debugtoolbar

sqlalchemy.url = postgresql+psycopg2://lingvodoc:password@pg:5432/lingvodoc
sqlalchemy.url = postgresql+psycopg2://postgres:password@pg:5432/lingvodoc

# This parameter should be specified manually
dedoc_url = dedoc_url
Expand Down
Loading

0 comments on commit 2c0884b

Please sign in to comment.