Невозможно войти в правильную базу данных с Blazer Gem на Azure SQL Server - PullRequest
0 голосов
/ 14 января 2020

Я собираюсь использовать гем Blazer , чтобы предоставить моим пользователям платформу для самостоятельной работы на лету аналитика / информационные панели / et c - однако камень выглядит идеально для их случая использования У меня проблемы с подключением к Azure SQL.

Подключение к локализованной SQL Express установить нормально, и я подключаюсь через следующее:

data_sources:
  database:
    url: sqlserver://blazer:password@localhost:1433/database_name

Так что я знаю, что он работает со стандартным SQL сервером, как определено в readme.

Проблема возникает, когда я пытаюсь подключиться к нашей Dev Azure SQL DB.

В database.yml я использую следующее (работает нормально, просто добавляя здесь для контекста) , однако я не могу использовать эти параметры в Blazer.yml:

development:
  adapter: sqlserver
  database: database_name
  host: hostname.database.windows.net
  mode: DBLIB
  port: 1433
  username: username
  password: password
  azure: true

Я пробовал различные варианты подключения URL-адреса подключения в соответствии с документами Blazer, но не могу сработать как попасть в нужную БД в Dev Azure SQL. Лучшее, что я могу сделать, - это подключиться и войти в основную базу данных , если я переключусь на использование своего пользователя SA вместо использования только созданного мной пользователя Blazer только для чтения. Я делаю это с помощью следующего:

data_sources:
  database:
    url: sqlserver://sa_user:password@hostname.database.windows.net?database=database_name&azure=true

Примечания

  • Он игнорирует флаг database = database_name в приведенном выше и подключается к мастеру
  • Требуется лазурь = true флаг или TinyTDS не будут работать, и он вообще не будет подключаться
  • hostname.database. windows .net / database_name не будет работать, так как это из-за отсутствия операторов USE в Azure SQL
  • Невозможно установить базу данных по умолчанию в Azure SQL, поэтому я не могу обойти это таким образом либо

Насколько я могу скажите, мне нужно передать имя базы данных через URL, тогда TinyTDS должен сделать все остальное, но я не знаю, как - или есть ли другие способы для меня определить Соединение, которое должен использовать Blazer.

Отображение главной базы данных в Blazer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...