Outoja virheitä

Started by painman, 26.12.15 - klo:14:56

Previous topic - Next topic

painman

Päivitin uuteen versioon, mutta nyt tulee tämmöistä virhettä:
Query 'DELETE FROM vllasku_session WHERE session_timestamp<'2015-12-26 14:18:27'' failed: (1146) Table 'vllasku.vllasku_session' doesn't exist

Sat Dec 26 14:44:47.919370 2015] [:error] [pid 42212] [client XX.XX.XXX.XXXX:54095] Query 'DELETE FROM vllasku_session WHERE session_timestamp<'2015-12-26 14:20:47'' failed: (1146) Table 'vllasku.vllasku_session' doesn't exist


Ja sama homma, vaikka tein uuden tietokannan ja ajoin sinne tuon create_database.sql:n ja laitoin configiin uudet tiedot, eli en saa puhdasta asennastakaan nyt toimimaan.

https://dl.dropboxusercontent.com/u/2795496/Share/ssp_temp_capture%20copy.jpg

Olisiko mitään vinkkiä?

Osx Server 5

mysqlnd 5.0.11-dev - 20120503
Apache API Version   20120211

painman

Eiku joo, mulla oli toi vanha vllasku etuliite tossa vielä... tutkitaas...

painman

Eteenpäin päästiin, mutta nyt:

[Sat Dec 26 15:06:11.633330 2015] [:error] [pid 65144] [client XXXXXXX:54353] Database upgrade query failed. Please execute the following queries manually:\\n\\nUPDATE mlinvoice_invoice_row ir SET ir.row_date=(SELECT i.invoice_date FROM mlinvoice_invoice i where i.id=ir.invoice_id) WHERE ir.row_date IS NULL\\nREPLACE INTO mlinvoice_state (id, data) VALUES ('version', '38')\\nALTER TABLE mlinvoice_invoice_row ADD COLUMN partial_payment tinyint NOT NULL default 0\\nREPLACE INTO mlinvoice_state (id, data) VALUES ('version', '39')\\nUPDATE mlinvoice_invoice_state SET invoice_unpaid=1 WHERE id=1\\nREPLACE INTO mlinvoice_state (id, data) VALUES ('version', '40')\\n

Kuinka teen tämän?

painman

#3
Tämmöstä virhettä antaa phpmyadmin kun ajaa tuon käsin:

Error
There seems to be an error in your SQL query. The MySQL server error output below, if there is any, may also help you in diagnosing the problem.

ERROR: Unknown Punctuation String @ 1
STR: \\
SQL: \\n\\nALTER TABLE mlinvoice_invoice_row ADD COLUMN partial_payment tinyint NOT NULL default 0\\nREPLACE INTO mlinvoice_state (id, data) VALUES ('version', '39')\\nUPDATE mlinvoice_invoice_state SET invoice_unpaid=1 WHERE id=1\\nREPLACE INTO mlinvoice_state (id, data) VALUES ('version', '40')\\n

Tai sitten jos opistaa noita kenoviivoja, mitkä maallikon silmiin näyttää vähän hämäriltä, niin:

#1064 - 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 '\\n\\nALTER TABLE mlinvoice_invoice_row ADD COLUMN partial_payment tinyint NOT N' at line 1

ALTER TABLE mlinvoice_invoice_row ADD COLUMN partial_payment tinyint NOT NULL default 0 REPLACE INTO mlinvoice_state (id, data) VALUES ('version', '39')UPDATE mlinvoice_invoice_state SET invoice_unpaid=1 WHERE id=1 REPLACE INTO mlinvoice_state (id, data) VALUES ('version', '40')

Ere Maijala

Okei, virheilmoituksessa on häikkää, ei pitäisi tulla noita \n-merkkejä (rivinvaihto), vaan joko niin, että jokainen lauseke ajetaan yksitellen tai korvataan \n puolipisteellä. Eli tähän tyyliin:

ALTER TABLE mlinvoice_invoice_row ADD COLUMN partial_payment tinyint NOT NULL default 0;
REPLACE INTO mlinvoice_state (id, data) VALUES ('version', '39');


Päivitysvirhe voi johtua esim. siitä, ettei MySQL-käyttäjätunnuksella ole riittäviä oikeuksia tehdä muutoksia. Kannattaa tarkistaa ensin, niin välttyy jatkossa käsityöltä. Laitan korjaukseen tuon virheilmoituksen sisällön, ettei sitä tarvitsisi itse säätää.

--Ere