如何为Jenkins + Docker中的PostgreSQL以外的数据库赋予不同的名称

问题描述 投票:1回答:1

在部署任何项目的服务器中,我想在django结构的settings.py中给出不同的数据库名称。我必须更改数据库名称吗?

我的docker-compose.yml文件如下..

version: '3'

services:

  db:

    image: postgres

  web:

    build: .

    command: bash -c "python manage.py makemigrations && python manage.py migrate  && python manage.py runserver 0.0.0.0:8000"

    volumes:
      - .:/code

    ports:
      - "8000:8000"

    depends_on:

      - db

我的数据库配置在settings.py中是这样的

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': 'postgres',

        'USER': 'postgres',

        'HOST': 'db',

        'PORT': 5432,

    }

}

我必须在哪里更改数据库名称?

python django docker
1个回答
2
投票

您可以使用POSTGRES_DB环境变量。来自Postgres docker image docs:

POSTGRES_DB此可选环境变量可用于为首次启动映像时创建的默认数据库定义不同的名称。如果未指定,则将使用POSTGRES_USER的值。

docker-compose.yml文件将是:

version: '3'

services:    
  db:    
    image: postgres
    env:
      POSTGRES_DB: <DATABASE NAME>
  web:    
    build: .    
    command: bash -c "python manage.py makemigrations && python manage.py migrate  && python manage.py runserver 0.0.0.0:8000"    
    volumes:
      - .:/code    
    ports:
      - "8000:8000"    
    depends_on:    
      - db

-

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.postgresql_psycopg2',

        'NAME': '<DATABASE NAME>',

        'USER': 'postgres',
    'HOST': 'db',

    'PORT': 5432,

  }

}
© www.soinside.com 2019 - 2024. All rights reserved.