Я только что установил Bash в Windows 10, установил пакет libmysqlclient-dev и выполнил задачу rake, которая выполняет нижеприведенный запрос для создания VIEW в базе данных mysql с использованием ActiveRecord :: Base.connection .ExecuteОшибка создания синтаксиса Mysql2 VIEW
DROP TABLE IF EXISTS debtors_customer_balances;
CREATE OR REPLACE VIEW debtors_customer_balances AS
SELECT
customer_id,
SUM(amount_cents) AS total_cents,
SUM(CASE
WHEN due_on >= CURDATE()
THEN amount_cents
ELSE 0
END) AS current_cents,
SUM(CASE
WHEN due_on >= (CURDATE() - INTERVAL 7 DAY)
AND due_on < CURDATE()
THEN amount_cents
ELSE 0
END) AS overdue7_cents,
SUM(CASE
WHEN due_on >= (CURDATE() - INTERVAL 14 DAY)
AND due_on < (CURDATE() - INTERVAL 7 DAY)
THEN amount_cents
ELSE 0
END) AS overdue14_cents,
SUM(CASE
WHEN due_on >= (CURDATE() - INTERVAL 30 DAY)
AND due_on < (CURDATE() - INTERVAL 14 DAY)
THEN amount_cents
ELSE 0
END) AS overdue30_cents,
SUM(CASE
WHEN due_on < (CURDATE() - INTERVAL 30 DAY)
THEN amount_cents
ELSE 0
END) AS overdue30_plus_cents
FROM
debtors_balances
GROUP BY
customer_id;
Однако, он бросает ошибку
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE OR REPLACE VIEW debtors_customer_balances AS SELECT ' at line 2: DROP TABLE IF EXISTS debtors_customer_balances; CREATE OR REPLACE VIEW debtors_customer_balances AS SELECT customer_id, etc...
Я не могу понять, что причина этого, как запрос работает отлично от макинтоша, это просто в Баше для окон я, кажется, получить эту синтаксическую ошибку.
Жемчужиной я использую mysql2 (0.3.18)
Это исправляет запрос, чтобы он мог запускаться, но, к сожалению, причина, по которой существует строка DROP TABLE, заключается в том, что этот запрос вызывается в конце семпла db: seed, и по какой-то причине VIEWS добавляются как ТАБЛИЦЫ в схема, поэтому, когда db: schema: load запускается как часть reseed (db: reset), она создает эти представления как таблицу и ошибки, когда она попадает в этот запрос. –
Исправлена ошибка с добавлением VIEWS как ТАБЛИЦЫ в схеме с помощью 'ActiveRecord :: SchemaDumper.ignore_tables = ['debtors_customer_balances', 'debtors_customer_entity_balances']' –