PDA

Zobacz pełną wersję : [Błąd] 'AUTOjosjos_INCREMENT,



czajna
24-04-2010, 17:52
Witajcie,

migruję moją Joomlę do z 1.0.15 do 1.5.16.

Wykonałem zgodnie z instrukcjami cały proces, łącznie z dodawaniem wtyczek migracyjnych, tworzeniem pliku w migratorze itp. W czasie migracji wyskakuje mi następny błąd:


Error at the line 19: ) ENGINE=MyISAM;
Query:CREATE TABLE IF NOT EXISTS
`josjosjosjos_adsmanagerjosjosjos_ads` (
`id` int(10) UNSIGNED NOT NULL AUTOjosjosjos_INCREMENT,
`parent` int(10) UNSIGNED DEFAULT '0',
`name` varchar(50) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`ordering` int(11) DEFAULT '0',
`published` tinyint(1) DEFAULT '0',
PRIMARY KEY
(`id`)
) ENGINE=MyISAM;

MySQL: 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 'AUTOjosjosjos_INCREMENT, `parent` int(10) UNSIGNED DEFAULT '0', `name` varchar(5' at line 3


Zatrzymał mnie błąd
Nie wiem skąd się wzięło coś takieg: josjosjosjos_adsmanagerjosjosjos_ads

W pliku z migratora jest jos_adsmanager

Gdzie jest błąd?

T

wojsmol
25-04-2010, 04:15
Witam
czajna Najprostrzym rozwiązaniem będzie wykonanie eksportu struktury tej tabeli ze starej bazy poprzez pma z zapisem do pliku sql z trybem zgodności ustawionym na MYSQL40 podmienienie odpowiedniego pliku w folderze wtyczek SQL migratora. Następnie powtórz tworzenie kopii bazy danych poprzez komponent migrator dla Joomla! 1.0.x oraz wykonaj jej import do Joomla! 1.5.16

czajna
25-04-2010, 12:03
Cześć,

poprzedni błąd wyeliminowałem, zwyczajnie zapomniałem że mam przedrostek w tabeli bak_ a nie jos_. Jednak teraz dostaje kolejny błąd:



Error at the line 29: ) ENGINE=MyISAM;
Query:CREATE TABLE IF NOT EXISTS
'jos_adsmanager_categories'
(`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent` int(10) UNSIGNED DEFAULT '0',
`name` varchar(50) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`ordering` int(11) DEFAULT '0',
`published` tinyint(1) DEFAULT '0',
PRIMARY KEY
(`id`)
) ENGINE=MyISAM;

MySQL: 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 ''jos_adsmanager_categories' (`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, `par' at line 2
Zatrzymał mnie błąd




Czy to błąd w konfiguracji MySQL? Migracje przeprowadzam na serwer lokalny (XAMPP).



Witam
czajna Najprostrzym rozwiązaniem będzie wykonanie eksportu struktury tej tabeli ze starej bazy poprzez pma z zapisem do pliku sql z trybem zgodności ustawionym na MYSQL40 podmienienie odpowiedniego pliku w folderze wtyczek SQL migratora. Następnie powtórz tworzenie kopii bazy danych poprzez komponent migrator dla Joomla! 1.0.x oraz wykonaj jej import do Joomla! 1.5.16


Podmienienie...jaki plik mam podmienić? Czy masz na myśli wrzucenie tego pliku do katalogu /administartors/components/com_migrator/tables ? Jak ma nazywać się plik? Rozumiem że wtedy mógłbym usunąć pozostałe wtyczki SQL? A co z wtyczkami ETL? Zostawić?

wojsmol
25-04-2010, 18:07
Witam
Podmienienie...jaki plik mam podmienić?masz podmienićplik wtyczki SQL odpowiedzialnej za tabele, w której jest zgłaszany błąd.
Czy masz na myśli wrzucenie tego pliku do katalogu /administartors/components/com_migrator/tables ?Tak
Jak ma nazywać się plik?Nazwa pliku jest dowolna, najważniejsza jest jego treść.
Rozumiem że wtedy mógłbym usunąć pozostałe wtyczki SQL? A co z wtyczkami ETL? Zostawić?NIe, jedna nierdzenna tabela = zestaw 2 wtyczek - ETL i SQL.
Pozdrawiam

czajna
26-04-2010, 14:27
Dzięki za wskazówkę, rzeczywiście pomogło. Jednak teraz mam błąd w kolejnej tabeli jos_adsmanager_colums. Zapewne wszystkie tabele jeszcze raz muszę wyeksportować i wgrać do wtyczek. Czy znasz jakiś sposób żeby wyeksportować tabele za jednym razem do wielu różnych plików, żeby je wrzucić do /administartors/components/com_migrator/tables

A może mógłbym wyeksportować wszystko do jednego pliku i wrzucić to do /administartors/components/com_migrator/tables?

Pozdrawiam

czajna
28-04-2010, 11:30
Ok, poradziłem sobie i wyeksportowałem tabele do osobnych plików, wykonałem plik migracyjny i zrobiłem migracje...nieudaną. Kolejny błąd:



Error at the line 26: );
Query:CREATE TABLE jos_SecurityImagesSession (
id int(10) unsigned NOT NULL auto_increment,
sessionid varchar(64) NOT NULL,
publickey varchar(64) NOT NULL,
hnkey varchar(64) NOT NULL,
privatekey varchar(64) NOT NULL,
date datetimeDEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);

MySQL: 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 'datetimeDEFAULT '0000-00-00 00:00:00' NOT NULL, PRIMARY KEY (id) )' at line 7
Zatrzymał mnie błąd




Nie wiem co mam z tym zrobić :(

wojsmol
28-04-2010, 12:41
Witam
Masz drobny błąd w zapytaniu. Ta wersja powinna działać:

CREATE TABLE jos_SecurityImagesSession (
id int(10) unsigned NOT NULL auto_increment,
sessionid varchar(64) NOT NULL,
publickey varchar(64) NOT NULL,
hnkey varchar(64) NOT NULL,
privatekey varchar(64) NOT NULL,
date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
);
Pozdrawiam

czajna
28-04-2010, 18:27
Ok, poprawiłem to, ale mimo wszystko wyskakiwał kolejny błąd o niezgodności co do liczby kolumn. Jednocześnie zauważyłem że w moich wtyczkach SQL zapis 'jos_SecurityImagesSession' a nie `jos_SecurityImagesSession`. Poprawiłem to mając nadzieję że to był ten błąd...niestety nie. Teraz wyskakuje mi coś takiego:



Error at the line 28: ) ENGINE=MyISAM;
Query:CREATE TABLE IF NOT EXISTS `jos_adsmanager_categories` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent` int(10) UNSIGNED DEFAULT '0',
`name` varchar(50) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`ordering` int(11) DEFAULT '0',
`published` tinyint(1) DEFAULT '0',
PRIMARY KEY
(`id`)
) ENGINE=MyISAM;

MySQL: 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 TABLE IF NOT EXISTS `jos_adsmanager_categories` ( `id` int(10) UNSIGNE' at line 1
Zatrzymał mnie błąd



Poniżej przykładowy plik wtyczki ETL i SQL, może tu coś jest nie tak?





CREATE TABLE IF NOT EXISTS `jos_adsmanager_ads` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent` int(10) UNSIGNED DEFAULT '0',
`name` varchar(50) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`ordering` int(11) DEFAULT '0',
`published` tinyint(1) DEFAULT '0',
PRIMARY KEY
(`id`)
) ENGINE=MyISAM;




<?php


class adsmanager_ads_ETL extends ETLPlugin {

var $ignorefieldlist = Array();
var $valuesmap = Array();

function getName() { return "adsmanager_ads ETL Plugin"; }
function getAssociatedTable() { return 'adsmanager_ads'; }

function mapvalues($key,$value) {
switch($key) {
default:
return $value;
break;
}
}
}
?>

czajna
28-04-2010, 21:17
Próbowałem na kilka sposobów, o to wnioski:

1. Migracja wg wiki (http://wiki.joomla.pl/Migracja_z_Joomla_1.0_do_1.5)

Instalacja z migracją jednej tabeli (jos_adsmanager_colums) skutkuje błędem

2. Migracja wg Wojsmola (eksport za pomocą PhpMyAdmina)

Instalacja z migracją jednej tabeli (jos_adsmanager_colums) udana!

Instalacja z migracją wszystkich tabel komponentu adsmanager skutkuje błędem (link do błędu (http://img405.imageshack.us/img405/2383/screengw.png))

Używam Migratora w wersji Migrator_1.5

Gdzie popełniam błąd?

wojsmol
28-04-2010, 23:34
Witam
Odnośnie punktu 2 w wariancie ze wszystkimi tabelami:
1. Czy importowałeś do pustej bazy?
2. Czy kopii migracyjnej używałeś tylko raz?
Pozdrawiam

czajna
28-04-2010, 23:58
1. Tak do pustej (0 tabel)
2. Tak



oraz wykonaj jej import do Joomla! 1.5.16Import wykonuje przy instalacji Joomli tak jak to jest opisane w wiki

Teraz przeprowadziłem próbę migracji z tabelami fireboard i był błąd mniej więcej taki: zatrzymano na 407 linii. Kod zawiera ponad 300 linii, prawdopodobnie to bardzo długi artykuł.

Dla przypomnienia korzystam z Migratora 1_5; stara wesja Joomli 1.0.13 Stable

Co jeszcze mogę spróbować?

wojsmol
29-04-2010, 00:18
Witam
Skupmy sie na 1 problemie, czyli migracja wszystkich tabel ads manager. Do następnego posta dołącz spAkowane w zip wtyczki ETL i SQL oraz wynikowy plik SQL (przed użyciem do migracji).
Pozdrawiam

czajna
29-04-2010, 12:24
link do plików (http://www.sendspace.pl/file/cd75103d0a2be9b80d7ea5b)

wojsmol
29-04-2010, 15:42
Witam
Masz błędnie napisane wtyczki ETL dla ads manager. Poniżej dołączam zestaw działających wtyczek.
Pozdrawiam

czajna
29-04-2010, 16:43
Po instalacji Twoich wtyczek, dalej błąd:



Error at the line 28: ) ENGINE=MyISAM;
Query:CREATE TABLE IF NOT EXISTS `jos_adsmanager_categories` (
`id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`parent` int(10) UNSIGNED DEFAULT '0',
`name` varchar(50) DEFAULT NULL,
`description` varchar(250) DEFAULT NULL,
`ordering` int(11) DEFAULT '0',
`published` tinyint(1) DEFAULT '0',
PRIMARY KEY
(`id`)
) ENGINE=MyISAM;

MySQL: 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 TABLE IF NOT EXISTS `jos_adsmanager_categories` ( `id` int(10) UNSIGNE' at line 1
Zatrzymał mnie błąd

wojsmol
29-04-2010, 18:17
Witam
2 wtyczki SQL były zapisane w złym kodowaniu w załączniku przyłam poprawiony zestaw.
Pozdrawiam

czajna
29-04-2010, 19:01
Ten błąd mi się pojawia: LINK tylko linia 93
(http://img405.imageshack.us/img405/2383/screengw.png)

wojsmol
29-04-2010, 19:29
Witam
Podałeś ten sam link do zrzutu błędu co w poście #9 wczoraj, popraw.
Pozdrawiam

czajna
29-04-2010, 19:50
To sie wlasnie pojawia tylko linia 93

wojsmol
29-04-2010, 20:39
Witam
Ponawiam pytania z postu #10. Błąd świadczy o tym, w tej tabeli jest już wpis o tym id. Dodatkowo podaj kodowanie starej i nowej bazy danych.
Pozdrawiam

czajna
30-04-2010, 20:50
Witam
Ponawiam pytania z postu #10. Błąd świadczy o tym, w tej tabeli jest już wpis o tym id. Dodatkowo podaj kodowanie starej i nowej bazy danych.
Pozdrawiam

Tak, importuje do pustej bazy.

Co do kodowania to w PhpMyAdmin mam: System kodowania znaków dla MySQL: UTF-8 Unicode (utf8), dla tabel mam latin1_swedish_ci, ale przy imporcie daje


Kodowanie poprzedniej wersji witryny : utf-8

EDIT: Zmieniałem Metodę porównywania napisów w jos_adsmanager_ads na utf8_polish_ci - ten sam błąd się pojawia

---------- Post added at 20:50 ---------- Previous post was at 12:36 ----------


MySQL: Unknown column 'x' in 'field list'

This is usually caused by having a third party extension installed on your Joomla! 1.0 site that has hacked the core Joomla! tables and added new fields. If the extension in question has been properly written, uninstalling it should resolve the problem. If it doesn't, identifying the table that has the extra field in it and removing this field will resolve this issue.
Examples of extensions that are known to do this (incomplete):


Joomla SSO (http://joomlacode.org/gf/project/sso)

An alternative solution to this problem is to manually remove that particular column from the table in question. I'd personally recommend first examining your Joomla! site and seeing which extensions you have installed, potentially creating a test site using JoomlaPack, and seeing which extension caused the issue. When you find extensions that cause issues, please add them to the list on this page.


http://docs.joomla.org/Common_Migrator_Errors

jak rozumie jednym ze sposobów może być odinstalowanie komponentu w tym wypadku AdsManagera. Tylko czy jak go odinstaluje i zainstaluję ponownie to nie utracę danych?