*
  Мысли   Галерея   Проекты   Тексты  
  Мысли   Галерея   Проекты   Тексты  
Giver: оракле  (2016-02-29 11:22:29)

Ну что, теперь я настоящий ынтырпрайзный программист. С ораклем, хибернейтом, ликвибейзом и множеством других интересных штук. Теперь можно писать функции в три строчки, обмазывать их километрами тестов, тестировать "order by" и другие встроенные в базу функции. А еще наконец начались веселые ситуации. так давно их не было. Все коммитят прямо в мастер, хотя это уже гит, а не свн, даже есть мержреквесты и CI, но ломать мастер это никому не мешает. Каждый раз Очень сходные ощущения испытывал когда писал на PHP и MySQL, что было уже целых десять лет назад! То есть через 4 месяца будет 10 лет как я коммерчески занимаюсь программированием!

Так вот. Обновляюсь я значит на последний коммит, пытаюсь запуститься и получаю проблему с миграцией. Сходил к автору, он мне сказал что Оракл 11г, который стоит у меня, больше не поддерживается и нужно накатить 12с. Накатил. Теперь вылетает на другой миграции, свежей и последней. Выглядит она приблизительно так:

Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set 
conf/migrations/tables/table_name.xml::2016.23.02 09:30::Vasiliy_Leonidov:
     Reason:
          conf/migrations/changelog.xml : 
liquibase.precondition.core.TableExistsPrecondition@7a663206 : Found multiple catalogs matching DARKS

        at liquibase.changelog.ChangeSet.execute(ChangeSet.java:517)
        at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:51) 
        at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:73) 
        at liquibase.Liquibase.update(Liquibase.java:210) 
        at liquibase.Liquibase.update(Liquibase.java:190) 
        at liquibase.Liquibase.update(Liquibase.java:186) 
        at liquibase.Liquibase.update(Liquibase.java:179) 
        at com.marks.css.utils.liquibase.impl.LiquibaseServiceImpl.update(LiquibaseServiceImpl.java:41)
        ... 29 common frames omitted
Caused by: liquibase.exception.PreconditionErrorException: Precondition Error
        at liquibase.precondition.core.TableExistsPrecondition.check(TableExistsPrecondition.java:65) 
        at liquibase.precondition.core.NotPrecondition.check(NotPrecondition.java:38)
        at liquibase.precondition.core.AndPrecondition.check(AndPrecondition.java:43)
        at liquibase.precondition.core.PreconditionContainer.check(PreconditionContainer.java:202) 
        at liquibase.changelog.ChangeSet.execute(ChangeSet.java:474)
        ... 36 common frames omitted

Перепробовал уже практически все что можно, сходил к этому Vasiliy_Leonidov, он говорит что бага не у него, а вот в предыдущей перед ним миграции. Сходил и туда. Там говорят все нормально. Начал пробовать уже совсем странные вещи. В конце концов удивительным образом вспомнил что при установке, когда создавал пользователя я создал его в ковычках и не смог подлкючиться. Тогда пересоздав его без ковычек все заработало. Кроме миграции.

Оказалось что оракл создал два пользователя, один маленькими буквами, другой большими. Практически всегда он нормально их раделял, но иногда возникали проблемы. Тогда я начал пытаться его удалить. Но не тут то было. Говорит ORA-28014: cannot drop administrative users!

Исправляется это с помощью такой конструкции:

alter session set “_oracle_script”=true;
drop user "admin" cascade;

Имя:
Комментарий: