Я интегрирую вход в Facebook для своего приложения. У меня есть модель под названием «Пользователь», и она должна иметь два столбца: «поставщик» и «uid». Все хорошо в разработке, но я только заметил, что на производстве «Пользователь» не имеет ни столбца. Я попытался перепроверить мою базу данных на моем сервере, но это не помогло.Можно ли добавлять или удалять столбцы без файла миграции?
Итак, я проверил свой код в реальном времени, а «провайдер» и «uid» оба перечислены в моем schema.db, но они не упоминаются ни в одном из моих файлов миграции, на производстве или разработке. В любом из моих коммитов нет никаких записей о любом таком файле миграции. Каким-то образом они, очевидно, были добавлены в мою схему без каких-либо файлов миграции. Возможно ли это? Я имею в виду, если бы я написал файл миграции и просто случайно удалил его позже, я думаю, что он все равно будет отображаться в моих коммитах, не так ли? Это было так давно, я не помню, что я сделал.
Но в любом случае, вот моя проблема: я не могу написать файл миграции, добавляющий столбцы, потому что это вызовет конфликты при разработке, и я не могу записать файл миграции, удалив их, а затем добавлю их еще один файл, потому что то на производстве сервер будет пытаться удалить столбцы, которые не существуют в первую очередь. Можно ли добавлять или удалять столбцы, не записывая никаких файлов миграции? Или я должен написать один, чтобы удалить их, перенести его на разработку, удалить, написать еще один, добавив их, а затем перенести это на разработку и на производство?
Поскольку столбцы находятся в моей schema.db, но не в моей фактической базе данных, я думаю, что реальный вопрос в том, что миграция редактирует схему? Потому что, если это так, то я думаю, что я мог бы запустить вниз миграции, а затем вверх миграции на развитие и производство.
Вас интересуют данные в этих столбцах в вашей среде разработки? Вы можете просто удалить их вручную, добавить отсутствующую миграцию, чтобы добавить их, и запустить эту миграцию повсюду. BTW, 'schema.rb' основывается на текущем состоянии вашей базы данных, которое может или не может иметь ничего общего с вашими миграциями. –
Как называется таблица, в которой находятся поставщик и uid? Похоже, что «uid» сокращен для «user_id», который используется в ассоциации с таблицей: users, потому что идентификатор пользователя будет просто простым идентификатором в таблице пользователей. Может быть, вы можете показать нам схему? –
@muistooshort Как я могу удалить столбец вручную? Нет, мне не нужны данные. –