Неинициализированная константа MysqlCompat::MysqlRes
Я получаю неинициализированную константу MysqlCompat::MysqlRes при запуске rake db:migrate.
Так вот моя история. Я обновил свою систему до снежного барса, и у меня был существующий проект, который работал нормально. Я пытался обновить некоторые вещи, один из которых был MySQL до 64-разрядных. Это когда все пошло не так. Поэтому, если я сделаю следующее, я получу следующие результаты из своего каталога work/myproject.
файл, который mysql /usr/local/mysql/bin/mysql: исполняемый файл Mach-O i386 файл, который ruby /usr/local/bin/ruby: исполняемый файл Mach-O i386
Так что я, честно говоря, не знаю, где я это переношу. Я думал, что установил 64-битную версию MySQL, но это не так.
Я запустил gem uninstall mysql, а затем запустил sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- -with-mysql-config=/usr/local/mysql/bin/mysql_config
Тоже не сработало!
Кто-нибудь может помочь?
3 ответа
Это сработало для меня (на OS X 10.6.6):
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
Проблема в том, что вам нужно использовать ту же архитектуру для ruby, libmysqlclient и mysql ruby gem (i386 или x86_64).
Я заметил, что рубин, на который вы ссылаетесь, находится в /usr/local/bin/ruby
вместо стандартного расположения системы /usr/bin/ruby
- убедитесь, что вы используете версию ruby, которую вы намеревались.
Использование i386 вместо x86_64 у меня сработало
sudo env ARCHFLAGS="-arch i386" gem install mysql - --with-mysql-config=/usr/local/mysql/bin/mysql_config