Я следую этому руководству, https://devcenter.heroku.com/articles/начало работы с рельсами5. Я беру гем sqlite3 и добавляю pg, затем запускаю установку пакета. Затем я изменяю свой файл config/database.yml, чтобы он выглядел следующим образом.
конфиг/база данных.yml
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: myapp5_development
test:
<<: *default
database: myapp5_test
production:
<<: *default
database: myapp5_production
username: myapp5
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
Что касается следующей части, руководство дает мне два варианта, и я попробовал оба. Установка этого драгоценного камня «rails_12factor» или добавление следующего кода в мой файл «config/environments/production.rb»
config/среды/production.rb
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
if ENV["RAILS_LOG_TO_STDOUT"].present?
logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
end
Затем, если я запускаю rake db:create, а затем rake db:migrate, это выдает мне ошибки, поэтому я запускаю rake db:reset, и это позволяет выполнить миграцию. Если я запускаю свой сайт, я получаю сообщение об ошибке
PG::UndefinedTable: ERROR: relation "videos" does not exist
LINE 1: SELECT "videos".* FROM "videos" ORDER BY "videos"."title" A...
^
: SELECT "videos".* FROM "videos" ORDER BY "videos"."title" ASC LIMIT $1 OFFSET $2
Extracted source (around line #2):
<div class = "container">
<% @videos.each do |x| %>
<p> <div class = "child">
<video controls width = "310" height = "230" src = "<%= x.file %>"></video>
<p> <%= x.title %> </p>
Когда я смотрю на свои таблицы через ActiveRecord::Base.connection.tables, я вижу, что видео существует.
["Видео", "ipaddresstrackers", "пользователи", "голоса", "schema_migrations", "ar_internal_metadata"]
Вы можете поделиться файлом миграции для «видео»?
Это была проблема с учетом регистра, спасибо! Если вы хотите сделать этот комментарий ответом, я с удовольствием отмечу его как правильный ответ.





Переименуйте таблицу «Видео» в «видео».
In PostgreSQL unquoted names are case-insensitive. Thus
SELECT * FROM videosandSELECT * FROM ViDeOsare equivalent.However, quoted names are case-sensitive.
SELECT * FROM "videos"is not equivalent toSELECT * FROM "Videos".
Подробнее здесь.
Переименуйте «Видео» в «Видео». Postgresql чувствителен к регистру для имен в кавычках. Подробнее: stackoverflow.com/questions/21796446/postgres-чувствительно к региструty