• Our friends from AlphaCentauri2.info are in need of technical assistance. If you have experience with the LAMP stack and some hours to spare, please help them out and post here.

UnitPromotions xml error in database

ScoopJohn

Chieftain
Joined
Oct 30, 2015
Messages
47
I was in the middle of working on my anime mod, few other civilizations are done well, except now i'm struck once again in another fatal error, but due that i can't still understand what's wrong, can somebody explain this database log error?

Code:
[25221.343] no such table: Language_zh_CN
[25221.343] In Query - insert into Language_zh_CN('Tag', 'Text') values (?, ?);
[25221.343] In XMLSerializer while updating table Language_zh_CN from file Localization/IGE_ZH_CN.xml.
[25222.078] table UnitPromotions_Features has no column named TerrainType
[25222.078] In Query - insert into UnitPromotions_Features('PromotionType', 'TerrainType', 'Attack') values (?, ?, ?);
[25222.078] In XMLSerializer while updating table UnitPromotions_Features from file XML/Units/CIV5UnitPromotions.xml.

I'm not perfect at translating this error in clean language so anybody here could be great at telling me what's wrong.

For some reason while i was trying to upload an attachment of my mod, the file size is larger than 20+ MB as usual and i can't get to upload it due to a missing security token. So here's instead the XML of the CIV5UnitPromotions.xml file, try to see if you can get to find out what's the error.

Code:
<?xml version="1.0" encoding="utf-8"?>
<!-- Created by ModBuddy on 2/8/2016 2:29:50 PM -->
<GameData>
	<UnitPromotions>
		<Row>
			<Type>PROMOTION_POLARSCRAMBLE</Type>
			<Description>TXT_KEY_PROMOTION_POLARSCRAMBLE</Description>
			<Help>TXT_KEY_PROMOTION_POLARSCRAMBLE_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>1</OrderPriority>
			<PortraitIndex>22</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_MELEE</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_POLARSCRAMBLE</PediaEntry>
		</Row>
		<Row>
			<Type>PROMOTION_LOVESUN</Type>
			<Description>TXT_KEY_PROMOTION_LOVESUN</Description>
			<Help>TXT_KEY_PROMOTION_LOVESUN_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>1</OrderPriority>
			<PortraitIndex>9</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_MELEE</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_LOVESUN</PediaEntry>
			<AdjacentTileHealChange>15</AdjacentTileHealChange>
		</Row>
		<Row>
			<Type>PROMOTION_SLAVICREB</Type>
			<Description>TXT_KEY_PROMOTION_SLAVICREB</Description>
			<Help>TXT_KEY_PROMOTION_SLAVICREB_HELP</Help>
			<Sound>AS2D_IF_LEVELUP</Sound>
			<OrderPriority>1</OrderPriority>
			<PortraitIndex>13</PortraitIndex>
			<IconAtlas>PROMOTION_ATLAS</IconAtlas>
			<PediaType>PEDIA_MELEE</PediaType>
			<PediaEntry>TXT_KEY_PROMOTION_SLAVICREB</PediaEntry>
		</Row>
	</UnitPromotions>

	<UnitPromotions_Features>
		<Row>
			<PromotionType>PROMOTION_POLARSCRAMBLE</PromotionType>
			<TerrainType>FEATURE_SNOW</TerrainType>
			<Attack>50</Attack>
		</Row>
	</UnitPromotions_Features>

	<UnitPromotions_UnitCombatMods>
		<Row>
			<PromotionType>PROMOTION_SLAVICREB</PromotionType>
			<UnitCombatType>TXT_KEY_UNITCOMBAT_ARCHER</UnitCombatType>
			<Modifier>40</Modifier>
		</Row>
		<Row>
			<PromotionType>PROMOTION_SLAVICREB</PromotionType>
			<UnitCombatType>TXT_KEY_UNITCOMBAT_MELEE</UnitCombatType>
			<Modifier>30</Modifier>
		</Row>
		<Row>
			<PromotionType>PROMOTION_SLAVICREB</PromotionType>
			<UnitCombatType>TXT_KEY_UNITCOMBAT_RECON</UnitCombatType>
			<Modifier>50</Modifier>
		</Row>
	</UnitPromotions_UnitCombatMods>
</GameData>
 
The key bit
Code:
table UnitPromotions_Features has no column named TerrainType
Can put terrains in the features table!
 
The key bit
Code:
table UnitPromotions_Features has no column named TerrainType
Can put terrains in the features table!

I don't understand what your saying....
EDIT: I think i got it, the modiki had a mispelling on the table names on some pages...how really strange.....
 
Terrain and features are two different things.

You're looking for: UnitPromotions_Terrain not UnitPromotions_Features

Snow isn't a feature, it's a terrain. Features are either Natural Wonders or on a tile. Forests, jungle, marshes, and flood plains are examples. Snow, Tundra, Grasslands, or Plains are examples of terrain.
 
For BNW, in folder C:\Program Files (x86)\Steam\SteamApps\common\Sid Meier's Civilization V\assets\DLC\Expansion2\Gameplay\XML\Units* there is a file called CIV5UnitPromotions.xml. If you open this file, and look at the top of the file, you will find a series of table definitions:
Spoiler :
Code:
<Table name="UnitPromotions">
	<!-- Basic info -->
	<Column name="ID" type="integer" primarykey="true" autoincrement="true"/>
	<Column name="Type" type="text" notnull="true" unique="true"/>
	<Column name="Description" type="text" reference="Language_en_US(Tag)"/>
	<Column name="Help" type="text" default="" reference="Language_en_US(Tag)"/>
	<Column name="DisabledHelp" type="text" default=""/>
	<Column name="Button" type="text"/>
	<Column name="PortraitIndex" type="integer" default="9"/>
	<Column name="IconAtlas" type="text" default="ABILITY_ATLAS" reference="IconTextureAtlases(Atlas)"/>
	<!-- Hotkey info -->
	<Column name="HotKey" type="text"/>
	<Column name="HotKeyAlt" type="text"/>
	<Column name="HotKeyPriority" type="integer" default="0"/>
	<Column name="HotKeyPriorityAlt" type="integer" default="0"/>
	<Column name="OrderPriority" type="integer" default="0"/>
	<Column name="AltDown" type="boolean" default="false"/>
	<Column name="AltDownAlt" type="boolean" default="false"/>
	<Column name="ShiftDown" type="boolean" default="false"/>
	<Column name="ShiftDownAlt" type="boolean" default="false"/>
	<Column name="CtrlDown" type="boolean" default="false"/>
	<Column name="CtrlDownAlt" type="boolean" default="false"/>
	<!-- UnitPromotions info -->
	<Column name="Sound" type="text"/>
	<Column name="CannotBeChosen" type="boolean" default="false"/>
	<Column name="LostWithUpgrade" type="boolean" default="false"/>
	<Column name="NotWithUpgrade" type="boolean" default="false"/>
	<Column name="InstaHeal" type="boolean" default="false"/>
	<Column name="Leader" type="boolean" default="false"/>
	<Column name="Blitz" type="boolean" default="false"/>
	<Column name="Amphib" type="boolean" default="false"/>
	<Column name="River" type="boolean" default="false"/>
	<Column name="EnemyRoute" type="boolean" default="false"/>
	<Column name="RivalTerritory" type="boolean" default="false"/>
	<Column name="MustSetUpToRangedAttack" type="boolean" default="false"/>
	<Column name="RangedSupportFire" type="boolean" default="false"/>
	<Column name="CanMoveAfterAttacking" type="boolean" default="false"/>
	<Column name="AlwaysHeal" type="boolean" default="false"/>
	<Column name="HealOutsideFriendly" type="boolean" default="false"/>
	<Column name="HillsDoubleMove" type="boolean" default="false"/>
	<Column name="RoughTerrainEndsTurn" type="boolean" default="false"/>
	<Column name="IgnoreTerrainCost" type="boolean" default="false"/>
	<Column name="HoveringUnit" type="boolean" default="false"/>
	<Column name="FlatMovementCost" type="boolean" default="false"/>
	<Column name="CanMoveImpassable" type="boolean" default="false"/>
	<Column name="NoCapture" type="boolean" default="false"/>
	<Column name="OnlyDefensive" type="boolean" default="false"/>
	<Column name="NoDefensiveBonus" type="boolean" default="false"/>
	<Column name="NukeImmune" type="boolean" default="false"/>
	<Column name="HiddenNationality" type="boolean" default="false"/>
	<Column name="AlwaysHostile" type="boolean" default="false"/>
	<Column name="NoRevealMap" type="boolean" default="false"/>
	<Column name="Recon" type="boolean" default="false"/>
	<Column name="CanMoveAllTerrain" type="boolean" default="false"/>
	<Column name="FreePillageMoves" type="boolean" default="false"/>
	<Column name="AirSweepCapable" type="boolean" default="false"/>
	<Column name="AllowsEmbarkation" type="boolean" default="false"/>
	<Column name="EmbarkedAllWater" type="boolean" default="false"/>
	<Column name="HealIfDestroyExcludesBarbarians" type="boolean" default="false"/>
	<Column name="RangeAttackIgnoreLOS" type="boolean" default="false"/>
	<Column name="CityAttackOnly" type="boolean" default="false"/>
	<Column name="CaptureDefeatedEnemy" type="boolean" default="false"/>
	<Column name="HealOnPillage" type="boolean" default="false"/>
	<Column name="IgnoreGreatGeneralBenefit" type="boolean" default="false"/>
	<Column name="IgnoreZOC" type="boolean" default="false"/>
	<Column name="HasPostCombatPromotions" type="boolean" default="false"/>
	<Column name="PostCombatPromotionsExclusive" type="boolean" default="false"/>
	<Column name="RangedAttackModifier" type="integer" default="0"/>
	<Column name="InterceptionCombatModifier" type="integer" default="0"/>
	<Column name="InterceptionDefenseDamageModifier" type="integer" default="0"/>
	<Column name="AirSweepCombatModifier" type="integer" default="0"/>
	<Column name="ExtraAttacks" type="integer" default="0"/>
	<Column name="ExtraNavalMovement" type="integer" default="0"/>
	<Column name="VisibilityChange" type="integer" default="0"/>
	<Column name="MovesChange" type="integer" default="0"/>
	<Column name="MoveDiscountChange" type="integer" default="0"/>
	<Column name="RangeChange" type="integer" default="0"/>
	<Column name="InterceptChanceChange" type="integer" default="0"/>
	<Column name="NumInterceptionChange" type="integer" default="0"/>
	<Column name="EvasionChange" type="integer" default="0"/>
	<Column name="CargoChange" type="integer" default="0"/>
	<Column name="EnemyHealChange" type="integer" default="0"/>
	<Column name="NeutralHealChange" type="integer" default="0"/>
	<Column name="FriendlyHealChange" type="integer" default="0"/>
	<Column name="SameTileHealChange" type="integer" default="0"/>
	<Column name="AdjacentTileHealChange" type="integer" default="0"/>
	<Column name="EnemyDamageChance" type="integer" default="0"/>
	<Column name="NeutralDamageChance" type="integer" default="0"/>
	<Column name="EnemyDamage" type="integer" default="0"/>
	<Column name="NeutralDamage" type="integer" default="0"/>
	<Column name="CombatPercent" type="integer" default="0"/>
	<Column name="CityAttack" type="integer" default="0"/>
	<Column name="CityDefense" type="integer" default="0"/>
	<Column name="RangedDefenseMod" type="integer" default="0"/>
	<Column name="HillsAttack" type="integer" default="0"/>
	<Column name="HillsDefense" type="integer" default="0"/>
	<Column name="OpenAttack" type="integer" default="0"/>
	<Column name="OpenRangedAttackMod" type="integer" default="0"/>
	<Column name="OpenDefense" type="integer" default="0"/>
	<Column name="RoughAttack" type="integer" default="0"/>
	<Column name="RoughRangedAttackMod" type="integer" default="0"/>
	<Column name="RoughDefense" type="integer" default="0"/>
	<Column name="AttackFortifiedMod" type="integer" default="0"/>
	<Column name="AttackWoundedMod" type="integer" default="0"/>
	<Column name="FlankAttackModifier" type="integer" default="0"/>
	<Column name="NearbyEnemyCombatMod" type="integer" default="0"/>
	<Column name="NearbyEnemyCombatRange" type="integer" default="0"/>
	<Column name="UpgradeDiscount" type="integer" default="0"/>
	<Column name="ExperiencePercent" type="integer" default="0"/>
	<Column name="AdjacentMod" type="integer" default="0"/>
	<Column name="AttackMod" type="integer" default="0"/>
	<Column name="DefenseMod" type="integer" default="0"/>
	<Column name="DropRange" type="integer" default="0"/>
	<Column name="GreatGeneral" type="boolean" default="0"/>
	<Column name="GreatAdmiral" type="boolean" default="0"/>
	<Column name="GreatGeneralModifier" type="integer" default="0"/>
	<Column name="GreatGeneralReceivesMovement" type="boolean" default="0"/>
	<Column name="GreatGeneralCombatModifier" type="integer" default="0"/>
	<Column name="FriendlyLandsModifier" type="integer" default="0"/>
	<Column name="FriendlyLandsAttackModifier" type="integer" default="0"/>
	<Column name="OutsideFriendlyLandsModifier" type="integer" default="0"/>
	<Column name="HPHealedIfDestroyEnemy" type="integer" default="0"/>
	<Column name="ExtraWithdrawal" type="integer" default="0"/>
	<Column name="EmbarkExtraVisibility" type="integer" default="0"/>
	<Column name="EmbarkDefenseModifier" type="integer" default="0"/>
	<Column name="CapitalDefenseModifier" type="integer" default="0"/>
	<Column name="CapitalDefenseFalloff" type="integer" default="0"/>
	<Column name="CityAttackPlunderModifier" type="integer" default="0"/>
	<Column name="ReligiousStrengthLossRivalTerritory" type="integer" default="0"/>
	<Column name="TradeMissionInfluenceModifier" type="integer" default="0"/>
	<Column name="TradeMissionGoldModifier" type="integer" default="0"/>
	<Column name="GoldenAgeValueFromKills" type="integer" default="0"/>
	<Column name="Sapper" type="boolean" default="false"/>
	<Column name="HeavyCharge" type="boolean" default="false"/>
	<Column name="LayerAnimationPath" type="text" default="NULL"/>
	<Column name="TechPrereq" type="text" reference="Technologies(Type)" default="NULL"/>
	<Column name="Invisible" type="text" reference="InvisibleInfos(Type)" default="NULL"/>
	<Column name="SeeInvisible" type="text" reference="InvisibleInfos(Type)" default="NULL"/>
	<Column name="PromotionPrereq" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr1" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr2" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr3" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr4" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr5" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr6" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr7" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr8" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<Column name="PromotionPrereqOr9" type="text" reference="UnitPromotions(Type)" default="NULL"/>
	<!-- Pedia specific info -->
	<Column name="PediaType" type="text"/>
	<Column name="PediaEntry" type="text" reference="Language_en_US(Tag)"/>
</Table>
<Table name="UnitPromotions_Terrains">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="TerrainType" type="text" reference="Terrains(Type)"/>
	<Column name="Attack" type="integer" default="0"/>
	<Column name="Defense" type="integer" default="0"/>
	<Column name="DoubleMove" type="boolean" default="false"/>
	<Column name="Impassable" type="boolean" default="false"/>
	<Column name="PassableTech" type="text" reference="Technologies(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_Features">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="FeatureType" type="text" reference="Features(Type)"/>
	<Column name="Attack" type="integer" default="0"/>
	<Column name="Defense" type="integer" default="0"/>
	<Column name="DoubleMove" type="boolean" default="false"/>
	<Column name="Impassable" type="boolean" default="false"/>
	<Column name="PassableTech" type="text" reference="Technologies(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_UnitClasses">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitClassType" type="text" reference="UnitClasses(Type)"/>
	<Column name="Modifier" type="integer"/>
	<Column name="Attack" type="integer"/>
	<Column name="Defense" type="integer"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_Domains">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="DomainType" type="text" reference="Domains(Type)"/>
	<Column name="Modifier" type="integer"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_UnitCombatMods">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitCombatType" type="text" reference="UnitCombatInfos(Type)"/>
	<Column name="Modifier" type="integer"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_UnitCombats">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitCombatType" type="text" reference="UnitCombatInfos(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
<Table name="UnitPromotions_CivilianUnitType">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="UnitType" type="text" reference="Units(Type)"/>
</Table>
<Table name="UnitPromotions_PostCombatRandomPromotion">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="NewPromotion" type="text" reference="UnitPromotions(Type)"/>
</Table>
These are quite literally the definitions of the column-names each game-table uses within the UnitPromotions portion of the game's XML. You cannot have any column-name present within a game-table where that specific column-name is not assigned to be used in that game-table.

So, for table UnitPromotions_Features, the game has this definition:
Code:
<Table name="UnitPromotions_Features">
	<Column name="PromotionType" type="text" reference="UnitPromotions(Type)"/>
	<Column name="FeatureType" type="text" reference="Features(Type)"/>
	<Column name="Attack" type="integer" default="0"/>
	<Column name="Defense" type="integer" default="0"/>
	<Column name="DoubleMove" type="boolean" default="false"/>
	<Column name="Impassable" type="boolean" default="false"/>
	<Column name="PassableTech" type="text" reference="Technologies(Type)"/>
	<Column name="PediaType" type="text"/>
</Table>
There is no column called TerrainType listed in the definition of what is allowed within table UnitPromotions_Features. Hence the error in the Database.log and the rejection by the game of the entire contents of the file where you attempted to use a column called TerrainType within game-table UnitPromotions_Features.

*Your exact file path might be slightly different if you have Windows7, XP, etc.
 
Back
Top Bottom