GitLab 6.0 проекты глобального пространства имен
Обновление GitLab-а 5.4-to-6.0 требует смены глобального пространства имен проектов в пользу пространству имен группы. Даже на пользователей создаются подобные группы. А проекты которые раньше были доступны из корня теперь перемещаются с помощью rake таски migrate_global_projects. У меня так получилось что один из проектов не сменил пространства имен, что в следствии вызывало 500 ошибку на страницах с задачами и самим проектом (теперь уже видимому только админу). Этот рассказ это простое решение системного администратора, без погружения в консоль rake и магии рельсов.
Опуская тему рельсов, рецепт переноса проекта состоит из двух пунктов:
Правка базы данных
Данные о базе данных мы берем в config/database.yml
Я использую PostgreSQL.
Поиск проблемных проектов
Подключаемся к сервер баз данных и в указанной базе. И смотрим у какого проекта пустое поле namespace_id
SELECT * FROM "projects" WHERE "projects"."namespace_id" IS NULL;
Поиск подходящего пространства имен
Смотрим таблицу namespaces
SELECT * FROM namespaces;
Запоминаем у нужного пространства значение поля id
Обновление информации о проекте
UPDATE projects set namespace_id=2 WHERE "projects"."path" = 'someglobalproject' AND "projects"."namespace_id" IS NULL;
Условия для WHERE можете выбрать сами. Я использовал ссылку на значение поля path равное названию моего проекта, но это не уникальное поле, потому я проверяю что бы у найденой записи поле namespace_id было пустым.
Перенос файлов
mv /home/git/repositories/someglobalproject.git /home/git/repositories/mygroup/
, где
someglobalproject имя моего проекта
mygroup имя моей группы id которой я выбрал в базе