rake db:create throws “database does not exist” error with postgresql

前端 未结 10 904
忘了有多久
忘了有多久 2021-01-30 19:58

I\'m using rails 4.1.5 with postgresql 9.1 under Debian 7, and I\'m not able to create a database in my development environment. When I run

bin/rake db:create
         


        
10条回答
  •  梦如初夏
    2021-01-30 20:50

    Here is my Dockerfile for the rails project. Take a look at this part:

    CMD mkdir -p tmp/pids && \
        bundle exec rake db:create && \
        bundle exec rails db:migrate && \
        bundle exec rake db:seed && \
        bundle exec puma -C config/puma.rb
    

    Bundler 2.1.4, ruby 2.7.2, rails 6.0.3 compatible. Docker compose part:

    server:
        container_name: server
        build:
          context: Server
          dockerfile: Dockerfile
          args:
            ENV: 'development'
        restart: unless-stopped
        depends_on:
          - db
        env_file:
          - ./Server/.env
        ports:
          - '9090:3000'
        volumes:
          - ./Server:/app
          - ./Server/Docker/usr/.gemrc:/root/.gemrc
        networks:
          - app-network
    

    FROM ruby:2.7.2-alpine3.12
    
    # env and arg variables setup
    ARG APP_HOME='/app'
    ARG ENV
    ENV RAILS_ENV=$ENV \
        RACK_ENV=$ENV \
        RAILS_ROOT=$APP_HOME
    
    # timezone setup
    RUN apk add --update tzdata && \
        cp /usr/share/zoneinfo/Europe/London /etc/localtime && \
        echo "Europe/London" > /etc/timezone
    
    # building in tmp dir
    WORKDIR /tmp
    ADD Gemfile ./
    
    #install dependencies (bundler 2.1.4, ruby 2.7.2, rails 6.0.3 compatible) 
    RUN apk add --update --virtual runtime-deps postgresql-client nodejs libffi-dev readline sqlite xz && \
        apk add --virtual build-deps build-base openssl postgresql-dev libc-dev linux-headers libxml2-dev libxslt-dev readline-dev && \
        gem install bundler -v 2.1.4 && \
        bundle install --jobs=4 && \
        apk del build-deps
    
    # /app
    WORKDIR $APP_HOME
    
    # create dbs if no such, migrate, seed, start
    CMD mkdir -p tmp/pids && \
        bundle exec rake db:create && \
        bundle exec rails db:migrate && \
        bundle exec rake db:seed && \
        bundle exec puma -C config/puma.rb

提交回复
热议问题