Asensin päivitetyn laskutusohjelman uudelle koneelle. Siirsin tietokannan varmuuskopiosta uuteen laskutukseen. Nyt mikään laskutulostus, kuitti tai lähetyslistan tulostus ei onnistu. Laskut näkyvät normaalisti.
Saan virheilmoituksen:
Fatal error: Uncaught mysqli_sql_exception: Table 'test.mlinvoice_invoice_type' doesn't exist in C:\xampp\htdocs\mlinvoice\sqlfuncs.php:1192 Stack trace: #0 C:\xampp\htdocs\mlinvoice\sqlfuncs.php(1192): mysqli_stmt_prepare(Object(mysqli_stmt), 'SELECT * FROM m...') #1 C:\xampp\htdocs\mlinvoice\sqlfuncs.php(963): dbParamQuery('SELECT * FROM m...', Array) #2 C:\xampp\htdocs\mlinvoice\invoice_printer_base.php(420): getInvoiceType(NULL) #3 C:\xampp\htdocs\mlinvoice\invoice.php(175): InvoicePrinterBase->init('855', 'invoice', 'lasku_%d.pdf', false, '1', true) #4 {main} thrown in C:\xampp\htdocs\mlinvoice\sqlfuncs.php on line 1192
Miten tuon saan korjattua?
Onko mahdollista, ettei varmuuskopiosta tullut kaikkia tauluja, vaan mlinvoice_state-taulu olisi suoraan uudesta versiosta? Silloin osa tietokannan muutoksista on jäänyt tekemättä. Eli pääsetkö vielä tarkistamaan varmuuskopiosta, mitä taulussa mlinvoice_state on data-sarakkeessa id:llä 'version'? Tai onko tietoa, mistä MLInvoice-versiosta päivitys tehtiin? Tuon taulun saat kyllä tehtyä mysql:ssä seuraavalla komennolla, mutta hyvä olisi selvittää kunnolla siltä varalta, että muitakin muutoksia puuttuu:
CREATE TABLE mlinvoice_invoice_type (
id int(11) NOT NULL auto_increment,
deleted tinyint NOT NULL default 0,
identifier varchar(255) default NULL,
name varchar(255) default NULL,
order_no int(11) default NULL,
PRIMARY KEY (id)
) ENGINE=INNODB CHARACTER SET utf8 COLLATE utf8_swedish_ci;