This file documents changes in the data model. Please explain any changes to the data model as well as any custom migrations.
@scoutharris 2021-01-14
- Added
isSeen
attribute toReaderPost
entity.
@emilylaguna 2021-01-05
- Removed an invalid relationship to
ReaderSiteTopic.sites
from theComment
entity
@mindgraffiti 2020-12-15
- Added
unseenCount
attribute toReaderSiteTopic
entity
@scoutharris 2020-12-14
ReaderTeamTopic
: addedorganizationID
.ReaderSiteTopic
: madeorganizationID
non-optional.ReaderPost
: madeorganizationID
non-optional.
@scoutharris 2020-12-09
ReaderSiteTopic
: removedisWPForTeams
, addedorganizationID
.ReaderPost
: removedisWPForTeams
, addedorganizationID
.
@mindgraffiti 2020-12-07
- Added
isWPForTeams
property toReaderSiteTopic
.
@scoutharris 2020-12-04
- Added
isWPForTeams
property toReaderPost
.
@frosty 2020-12-03
- Set the following
Transformable
properties to use theNSSecureUnarchiveFromData
:- AbstractPost.revisions
- Blog.capabilities
- Blog.options
- Blog.postFormats
- MenuItem.classes
- Notification.body
- Notification.header
- Notification.meta
- Notification.subject
- Post.disabledPublicizeConnections
- Theme.tags
- Set custom transformers on the following properties:
- BlogSettings.commentsBlacklistKeys -> SetValueTransformer
- BlogSettings.commentsModerationKeys -> SetValueTransformer
- BlogSettings.jetpackLoginWhiteListedIPAddresses -> SetValueTransformer
- Media.error -> NSErrorValueTransformer
- Post.geolocation -> LocationValueTransformer
@guarani 2020-11-25
- Add a new
SiteSuggestion
entity to support Gutenberg's xpost implementation - Add a one-to-many relationship between
Blog
andSiteSuggestion
@emilylaguna 2020-10-09
- Add a relationship between
ReaderCard
andReaderSiteTopic
@guarani 2020-10-09
- Add a new
UserSuggestion
entity - Add a one-to-many relationship between
Blog
andUserSuggestion
@leandrowalonso 2020-07-27
- Add a new
ReaderCard
entity - Add a relationship between
ReaderCard
andReaderPost
- Add a relationship between
ReaderCard
andReaderTagTopic
@aerych 2020-06-17
- All stats entities were reviewed for consistency of Optional settings for strings and dates and default values for scalar numerical fields.
- Categories entity updated to make numeric fields scalar and non-optional.
@Gio2018 2020-06-12
- Add fields
supportPriority
,supportName
andnonLocalizedShortname
to thePlan
entity for Zendesk integration.
@guarani 2019-11-28
AbstractPost
addedautosaveIdentifier
(nullable
NSNumber
) property.
@guarani 2019-10-27
AbstractPost
addedautosaveTitle
(nullable
String
),autosaveExcerpt
(nullable
String
),autosaveContent
(nullable
String
), andautosaveModifiedDate
(nullable
Date
) properties.
@jklausa 2019-08-19
AbstractPost
: Addded aconfirmedChangesHash
(nullable
String
) andconfirmedChangesTimestamp
(nullable
Date
) properties.
@leandroalonso 2019-09-27
AbstractPost
: AddedautoUploadAttemptsCount
(Int 16
, default0
) property.
@shiki 2019-10-04
-AbstractPost
: Added statusAfterSync
property (nullable
, String
).
- Adds a custom migration for both
Post
andPage
entities. The migration copies the values ofstatus
tostatusAfterSync
. This is done via theWordPress-91-92.xcmappingmodel
.
@aerych 2019-10-15
WPAccount
addedprimaryBlogID
property.
@diegoreymendez 2019-08-28
Media
addedautoUploadFailureCount
property.
@scoutharris 2019-08-xx
- Added
FileDownloadsStatsRecordValue
entity.
@danielebogo 2019-07-24
AccountSettings
addedusernameCanBeChanged
property to store a bool value.
@etoledo 2019-07-19
Blog
: AddedmobileEditor
andwebEditor
properties
@klausa 2019-02-15
- Added following entities:
-
StatsRecordValue
-
StatsRecord
-
AllTimeStatsRecordValue
-
AnnualAndMostPopularTimeStatsRecordValue
-
ClicksStatsRecordValue
-
CountryStatsRecordValue
-
FollowersStatsRecordValue
-
LastPostStatsRecordValue
-
PublicizeConnectionStatsRecordValue
-
ReferrerStatsRecordValue
-
SearchResultsStatsRecordValue
-
StreakInsightStatsRecordValue
-
StreakStatsRecordValue
-
TagsCategoriesStatsRecordValue
-
TopCommentedPostStatsRecordValue
-
TopCommentsAuthorStatsRecordValue
-
TopViewedAuthorStatsRecordValue
-
TopViewedPostStatsRecordValue
-
TopViewedVideoStatsRecordValue
-
VisitsSummaryStatsRecordValue
@aerych 2018-12-08
- Added
Plan
,PlanGroup
, andPlanFeature
entities and properties.
@danielebogo 2018-11-12
- Added
BlogAuthor
to store the data of a blog author. Blog
addedauthors
property to store a set ofBlogAuthor
.
@jklausa / @pinarol 2018-11-01
Blog
added ahasDomainCredit
property to see whether user can redeem their credit for a free domain.
@danielebogo 2018-10-30
- Renamed
RevisionDiffAbstractValue
,RevisionDiffContentValue
,RevisionDiffTitleValue
toDiffAbstractValue
,DiffContentValue
,DiffTitleValue
. - Set
DiffAbstractValue
as abstract entity which was omitted from model 82. - Replaced relationship property name on
DiffContentValue
andDiffTitleValue
from relationship to revisionDiff. - Set
DiffAbstractValue
as parent entity ofDiffContentValue
which was omitted from model 82. - Replaced properties name on
DiffAbstractValue
from operation to diffOperation and type to diffType. - Added property index on
DiffAbstractValue
to store the right index position within the set.
@danielebogo 2018-10-26
AbstractPost
addedrevisions
property to store the revisions IDs.- Added
Revision
, to store the data of a post revision, like title, content, date. - Added
RevisionDiff
to store the data for a revision diff, like the amount of additions or deletions and the revision id it refers to. - Added
RevisionDiffAbstractValue
,RevisionDiffContentValue
,RevisionDiffTitleValue
: these will store the type of change and the operation type.
@nheagy 2018-09-26
- Replaced
QuickStartCompletedTour
withQuickStartTourState
withcompleted
andskipped
attributes
- @danielebogo 2018-08-31
Post
addedisStickyPost
property to mark posts as sticky.
- @frosty 2018-08-15
- Re-added
PublicizeService.externalUsersOnly
property from model 77, which was omitted from model 78.
- @nheagy 2018-07-25
- Added
QuickStartCompletedTour
for tracking completed Quick Start tours
- @aerych 2018-07-27
PublicizeService
addedexternalUsersOnly
(bool) property. A new field returned by the API.
- @frosty 2018-05-16
ReaderPost
addedisSavedForLater
property to mark posts as saved to read later.
-
@astralbodies 2018-05-15
-
Media
correctedfeaturedOnPosts
relationship to referenceAbstractPost
instead ofPost
. -
@frosty 2018-04-25
-
AccountSettings
addedtracksOptOut
property, used to store the user's current preference for opting out of analytics tracking. -
@danielebogo 2018-04-23
-
ReaderSiteInfoSubscriptionPost
andReaderSiteInfoSubscriptionEmail
added to store site notifications subscription data. -
ReaderSiteTopic
addedpostSubscription
andemailSubscription
properties as relationships toReaderSiteInfoSubscriptionPost
andReaderSiteInfoSubscriptionEmail
.
- @sergioestevao 2018-04-18
AbstractPost
addedfeaturedImage
a relationship to Media for the media featured in a post and removed 'post_thumbnail' that used to store a Int with the mediaID information.
- @sergioestevao 2018-03-05
- ``Blog
added
quotaSpaceAllowed` and 'quotaSpaceUsed' that stores a Int64, long number with quota information for the site.
- @sergioestevao 2018-02-07
- ``Media
added
error` Transformable property that stores a NSError object that resulted from a failed import or upload.
- @elibud 2018-02-02
BlogSettings
addedjetpackLazyLoadImages
andjetpackServeImagesFromOurServers
Bool properties.
- @koke 2018-01-16
BlogSettings
addedgmtOffset
Decimal property, andtimeZoneString
String property. Store the timezone settings.
- @ctarda 2017-11-27
PostTag
addedtagDescription
string property andpostCount
integer property. Store an optional description and the number of posts a tag has been used in.
- @elibud 2017-12-12
BlogSettings
added the following string properties:dateFormat
,timeFormat
,startOfWeek
, the following boolean propertiesampSupported
,ampEnabled
and an int_32postsPerPage
property.
- @3vangelos 2017-09-26
Media
addedalt
string property. Stores the information for an html alt tag for images.
- @elibud 2017-08-17
BlogSettings
added the following Jetpack security settings properties:jetpackMonitorEnabled
,jetpackMonitorEmailNotifications
,jetpackMonitorPushNotifications
,jetpackBlockMaliciousLoginAttempts
,jetpackSSOEnabled
,jetpackSSOMatchAccountsByEmail
,jetpackSSORequireTwoStepAuthentication
boolean, defaultNO
andjetpackLoginWhiteListedIPAddresses
string set property.
- @elibud 2017-08-02
Theme
addedthemeUrl
string property.
- @elibud 2017-08-02
Theme
addedcustom
boolean property. DefaultNO
.
- @koke 2017-07-31
Role
added withslug
,name
,blog
.Blog
addedroles
relationship.
- @koke 2017-07-21
Blog
removedjetpackAccount
WPAccount
removedjetpackBlogs
- @koke 2017-07-19
Blog
addeduserID
Int64 property. Stores the current user ID.
- @kurzee 2017-06-16
Media
addedlocalThumbnailIdentifier
string property. Stores the locally generated thumbnail identifier.
- @elibud 2017-05-31
BlogSettings
addediconMediaID
int_32 property. Stores the mediaID of the site's icon.
- @kurzee 2017-05-04
MenuItem
addedclasses
property.- @elibud 2017-04-26
BasePost
addedsuggested_slug
property.
- @elibud 2017-04-06
Blog
addedhasPaidPlan
boolean property. DefaultNO
. Not optional.
- @kurzee 2017-03-16
Media
removedorientation
property.Media
removedprogress
property.
- @jleandroperez 2017-02-22
BasePost
removedmt_text_more
property- @koke 2017-02-10
Account
addedemailVerified
property.- @elibud 2017-02-02
Post
added optionaldisabledPublicizeConnections
transformable property.Post
added optionalpublicizeMessage
andpublicizeMessageID
string properties.
- @aerych 2016-12-21
ReaderPost
renamedpreserveForRestoration
to "inUse"ReaderAbstractTopic
renamedpreserveForRestoration
to "inUse"
- @aerych 2016-12-08
ReaderPost
addedpreserveForRestoration
boolean. Indexed. DefaultNO
. Not optional.
- @jleandroperez 2016-10-27
Notification
addednotificationHash
property.- @jleandroperez 2016-10-19
Notification
removedsimperiumKey
property.Notification
removedghostData
property.Notification
addednotificationId
property.- Removed
Meta
entity.
- @koke 2016-09-28
- Added
ReaderTeamTopic
entity.
- @aerych 2016-08-12
- Added
algorithm
optional string field toReaderAbstractTopic
. - Added
railcar
optional NSData field toReaderPost
. - @aerych 2016-08-05
- Removed
ReaderSite
entity. - @aerych 2016-07-19
ReaderAbstractTopic
addedpreserveForRestoration
boolean. Indexed. DefaultNO
. Not optional.
- @aerych 2016-06-24
ReaderSiteTopic
addedfeedURL
string property- @jleandroperez 2016-06-20
Person
addedcreationDate
attribute.- @jleandroperez 2016-06-21
Person
removedisFollower
property.Person
addedkind
Int16 attribute.- @aerych 2016-06-09
- Moved
dateModified
property fromBasePost
toAbstractPost
- @aerych 2016-05-26
- Added
ReaderSearchSuggestion
entity. Represents a search in the reader. - @aerych 2016-05-31
- Added
dateModified
property toBasePost
model. - @aerych 2016-05-23
ReaderPost
addedscore
.ReaderPost
addedsortRank
. It is not optional so the default of 0 is enforced.
- @frosty 2016-05-17
- Added
Domain
entity. Represents a domain belonging to a site. Blog
added new relationshipdomains
. An unordered set ofDomain
s for the blog.- @jleandroperez 2016-05-13
Person
updatedsiteID
to Int64.Person
updateduserID
to Int64.Person
added BooleanisFollower
.- @frosty 2016-05-12
Blog
added StringplanTitle
.- @aerych 2016-05-12
- Added
ReaderSearchTopic
entity. Represents a search in the reader. - @jleandroperez 2016-05-04
Person
added Int64linkedUserID
.- @jleandroperez 2016-04-22
Blog
added transformablecapabilities
.
- @sergioestevao 2016-04-05
Media
added new integer attributepostID
to store the post to where the media is attached to.- @kurzee 2016-04-08
Menu
changingmenuId
attribute tomenuID
as a int_32 number instead of string.MenuItem
changingitemId
attribute toitemID
as an int_32 number instead of string.MenuItem
changingcontentId
attribute tocontentID
as an int_64 number instead of string.- @jleandroperez 2016-04-11
AccountSettings
added new stringemailPendingAddress
. Whenever it's not nil, contains the new User's Email Address.AccountSettings
added new boolemailPendingChange
. Indicates whether there's a pending Email change, or not.
Post
added new string attributepostType
to store the associated string type of aPost
entity.- Added
PostType
entity. Represents a post type and its info. Blog
added new relationshippostTypes
to storePostType
entities for a site.
BlogSettings
added stringsharingButtonStyle
. Stores style to use for sharing buttons.BlogSettings
added stringsharingLabel
. Stores the text to show in the sharing label.BlogSettings
added stringsharingTwitterName
. Stores the username used when sharing to Twitter.BlogSettings
added boolsharingCommentLikesEnabled
. Whether comments display a like button.BlogSettings
added boolsharingDisabledLikes
. Whether posts display a like button.BlogSettings
added boolsharingDisabledReblogs
. Whether posts display a reblog button.BlogSettings
added integerlanguageID
. Stores the Blog's Language ID.- Added
SharingButton
entity. Represents a buton for sharing content to a third-party service. Blog
added new relationshipsharingButtons
. An unordered set ofShareButton
s for the blog.
- Added
Menu
entity. Encapsulates the data and relationships for customizing a site menu. - Added
MenuItem
entity. Encapsulates the navigation item data belonging to a Menu. - Added
MenuLocation
entity. Encapsulates a site/theme location that a Menu can occupy. - Added
PostTag
entity. Encapsulates a site's tag taxonomy. Blog
added new relationship calledmenus
. Persisting associated Menus for a site.Blog
added new relationship calledmenuLocations
. Persists associated MenuLocations available for a site.Blog
added new relationship calledtags
. Persisting associated PostTags for a site.Blog
added new integer64 attributeplanID
to store a blog's current plan's product ID.
- Added
PublicizeService
entity. Represents third-party services available to Publicize - Added
PublicizeConnection
entity. Represents a connection between a blog and a third-party Publicize service. Blog
added a new relationship calledconnections
. These are the PublicizeConnections for the blog.
ReaderPost
added new integer64 calledfeedID
to store a post's feed ID if it exists.ReaderPost
added new integer64 calledfeedItemID
to store a post's feed item ID if it exists.
- Added new entity
AccountSettings
Account
has now a new one-to-one relationship mapping toAccountSettings
Theme
added new string attributesauthor
andauthorUrl
to store a theme's author informationTheme
added new boolean attributepurchased
to store a premium theme's purchased status
Changes to the data model:
- Added new entity:
BlogSettings
, to encapsulate all of the Blog Settings Blog
has now a new one-to-one relationship mapping toBlogSettings
- Migrated the attribute
Blog.blogName
over toBlogSettings.name
- Migrated the attribute
Blog.blogTagline
over toBlogSettings.tagline
- Migrated the attribute
Blog.defaultCategoryID
over toBlogSettings.defaultCategoryID
- Migrated the attribute
Blog.defaultPostFormat
over toBlogSettings.defaultPostFormat
- Migrated the attribute
Blog.geolocationEnabled
over toBlogSettings.geolocationEnabled
- Migrated the attribute
Blog.privacy
over toBlogSettings.privacy
- Migrated the attribute
Blog.relatedPostsAllowed
over toBlogSettings.relatedPostsAllowed
- Migrated the attribute
Blog.relatedPostsEnabled
over toBlogSettings.relatedPostsEnabled
- Migrated the attribute
Blog.relatedPostsShowHeadline
over toBlogSettings.relatedPostsShowHeadline
- Migrated the attribute
Blog.relatedPostsShowThumbnails
over toBlogSettings.relatedPostsShowThumbnails
Notification.id
field has been updated to Integer 64
Changes to the data model:
Theme
added a new string attribute calleddemoUrl
to store a theme's demo site addressTheme
added a new string attribute calledprice
to store a premium theme's price display stringTheme
added a new string attribute calledstylesheet
to store identifier used to construct helper linksTheme
added a new number attribute calledorder
to store the display order retrieved by- Added new entity
Person
- Added new entity
ReaderCrossPostMeta
ReaderPost
added new relationship calledcrossPostMeta
to store the source post ID of a cross-post.
Blog
added a new boolean attribute calledrelatedPostsAllowed
to store the related setting on the site;Blog
added a new boolean attribute calledrelatedPostsEnabled
to store the related setting on the site;Blog
added a new boolean attribute calledrelatedPostsShowHeadline
to store the related setting on the site;Blog
added a new boolean attribute calledrelatedPostsShowThumbnails
to store the related setting on the site;
Changes to the data model:
Blog
added a new number attribute calledprivacy
to store the privacy setting on the siteReaderPost
added new string fields forblavatar
,primaryTag
, andprimaryTagSlug
ReaderPost
added new integer fields forwordCount
, andreadingTime
ReaderPost
added new boolean fields forisExternal
, andisJetpack
ReaderPost
removed fieldsdateCommentsSynced
, andstoredComment
- Added new entities:
ReaderAbstractTopic
,ReaderTagTopic
,ReaderListTopic
,ReaderDefaultTopic
,ReaderSiteTopic
,ReaderGapMarker
. - Edited obsolete mapping model:
SafeReaderTopicToReaderTopic
- Removes obsolete
ReaderTopic
model
Changes to the data model:
Blog
added a new number attribute calleddefaultCategoryID
to store the default category id for new posts on the siteBlog
added a new string attribute calleddefaultPostFormat
to store the default post format for new posts on the site
Changes to the data model:
Blog
added a new attribute calledblogTagline
to store the tagline of a siteAbstract Post
se the default value formetaPublishImmediately
attribute to yesBasePost
set the default value for thestatus
attribute to "publish"Account
added adisplayName
attribute (@koke)
Changes to the data model:
Media
added a new attribute called localThumbnailURL to store the url of a thumbnail on the server, specially relevant for videos
Media
added a new attribute called remoteThumbnailURL to store the url of a thumbnail on the server, specially relevant for videos
Changes to the data model:
Account
loses theisWpcom
attribute. Only WordPress.com accounts are stored in Core Data nowBlog.account
is now optionalAccount
loses thexmlrpc
attribute, as they will all be the same WordPress.com XML-RPC endpoint.- Self hosted username is stored in
Blog.username
now, and it's no longer transient. - Removed
isJetpack
attribute - Added
isHostedAtWPcom
attribute
Migration details:
- Only
Account
objects whereisWpcom == YES
will be migrated, added a predicate filter to the mapping model Blog
has a custom migration policy to calculateisHostedAtWPcom
andusername