roxlukas / lmeve

LMeve - industry manager and contribution tracker for EVE Online
https://pozniak.pl/wp/
Other
51 stars 13 forks source link

Citadel SDE breaks invBlueprintTypes table #26

Closed Wildweasel24 closed 8 years ago

Wildweasel24 commented 8 years ago

Hi Lukas,

Did a clean install from latest source here, into Debian.

Imported latest Steve Ronuken Mysql sde conversion as of 2nd May.

Task creations, database lookups, profit explorer etc starting showing missing data problems.

Traced issues to invBlueprintTypes table have several missing field values.

Created manual SQL script below to update missing values from SDE tables.

CO

`-- Name of $LM_EVEDB USE eve_sde ;

-- Update Blueprint Products UPDATE invBlueprintTypes as s inner join industryActivityProducts as g on s.blueprintTypeID = g.typeID SET s.productTypeID = g.productTypeID where g.activityID = 1 ;

-- Update Manufacturing Time UPDATE invBlueprintTypes as s inner join industryActivity as g on s.blueprintTypeID = g.typeID SET s.productiontime = g.time where g.activityID = 1 ;

-- Update TE Time UPDATE invBlueprintTypes as s inner join industryActivity as g on s.blueprintTypeID = g.typeID

Inner join invTypes as i on s.blueprintTypeID = i.typeID

SET s.researchProductivityTime = g.time where g.activityID = 3 ;

-- Update ME Time UPDATE invBlueprintTypes as s inner join industryActivity as g on s.blueprintTypeID = g.typeID SET s.researchMaterialTime = g.time where g.activityID = 4 ;

-- Update COPY Time UPDATE invBlueprintTypes as s inner join industryActivity as g on s.blueprintTypeID = g.typeID SET s.researchCopyTime = g.time where g.activityID = 5 ;

-- Update INVENTION Time UPDATE invBlueprintTypes as s inner join industryActivity as g on s.blueprintTypeID = g.typeID SET s.researchTechTime = g.time where g.activityID = 8 ;

-- Update Blueprint T2 ParentBPO UPDATE invBlueprintTypes as s inner join industryActivityProducts as g on s.blueprintTypeID = g.productTypeID SET s.parentBlueprintTypeID = g.TypeID where g.activityID = 8 ;

-- Update INCORRECT TECH LEVELS UPDATE invBlueprintTypes as s inner join invTypes as i on blueprintTypeID = i.typeID SET s.techLevel = 2 where techLevel = 1 and parentBlueprintTypeID IS NOT NULL and i.published = 1;`

roxlukas commented 8 years ago

Thanks for the bug report. I was testing on an already working instance, so might have missed something that would only surface in a brand new install.

roxlukas commented 8 years ago

Could you please send me [LMEVE_DIR]/var/error.txt to my e-mail pozniak(dot)lukasz(at)gmail.com? It contains SQL errors which will possibly reveal why the table invBlueprintTypes was incomplete.

Wildweasel24 commented 8 years ago

[LMEVE_DIR]/var/error.txt - no such file

Wildweasel24 commented 8 years ago

closed by mistake

roxlukas commented 8 years ago

I will run a clean install on Debian and see if I can reproduce it.

2016-05-16 18:22 GMT+02:00 Wildweasel24 notifications@github.com:

closed by mistake

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub https://github.com/roxlukas/lmeve/issues/26#issuecomment-219470970

roxlukas commented 8 years ago

Hi,

Please do the following (assuming lmeve is under /opt/lmeve )

mysql -u root -p DROP DATABASE eve_sde CREATE DATABASE eve_sde USE eve_sde \. sde-20160429-TRANQUILITY-2.sql make sure you have the MySQL SDE file in path

This should cause all the missing tables to be recreated (checks if all required tables exists are done at login time)

I've added some additional sanity checks in dbcatalog.php, so if you still have problems after following the above instruction, please update your LMeve with the most recent commit, and try re-importing SDE again.

Wildweasel24 commented 8 years ago

Followed your instructions, logged in..

Went to database, lookup Amarr Shuttle for example:

Error in query: SELECT shp.,skn.,mat.,lic. FROM eve_sde.skinShip shp JOIN eve_sde.skins skn ON shp.skinID = skn.skinID LEFT JOIN eve_sde.skinMaterialsRGB mat ON skn.skinMaterialID = mat.skinMaterialID JOIN eve_sde.skinLicense lic ON lic.skinID = skn.skinID JOIN eve_sde.invTypes itp ON lic.licenseTypeID=itp.typeID WHERE shp.typeID = 11134 AND duration=-1 MySQL reply: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'eve_sde.skinMaterialsRGB' doesn't exist

Will update to latest commit & reimport SDE.

roxlukas commented 8 years ago

I had exactly the same happening during my test Debian install. Latest commit should resolve this one.

2016-05-18 15:30 GMT+02:00 Wildweasel24 notifications@github.com:

Followed your instructions, logged in..

Went to database, lookup Amarr Shuttle for example:

Error in query: SELECT shp.,skn.,mat.,lic. FROM eve_sde.skinShip shp JOIN eve_sde.skins skn ON shp.skinID = skn.skinID LEFT JOIN eve_sde. skinMaterialsRGB mat ON skn.skinMaterialID = mat.skinMaterialID JOIN eve_sde.skinLicense lic ON lic.skinID = skn.skinID JOIN eve_sde.invTypes itp ON lic.licenseTypeID=itp.typeID WHERE shp.typeID = 11134 AND duration=-1 MySQL reply: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'eve_sde.skinMaterialsRGB' doesn't exist

Will update to latest commit & reimport SDE.

— You are receiving this because you were assigned. Reply to this email directly or view it on GitHub https://github.com/roxlukas/lmeve/issues/26#issuecomment-220026176

Wildweasel24 commented 8 years ago

All working perfectly ok now.

Absolutely required the "pecl install yaml" step, which requires you to install php-pear, php5-dev and yaml-dev dependencies in Debian.

NB yaml-dev is not automatically pulled in as a dependency, but without it the "pecl install.." step fails though missing header files.