Edgewall Software

Version 4 (modified by Peter Suter, 9 years ago) ( diff )

Renamed table, added indices, updated links

Trac Database Schema: Notification

The TracNotification module stores notification event subscriptions in the database.

Table notify_subscription

TableKey
notify_subscriptionid
ColumnsTypeNotes
idauto_increment
timeint64
changetimeint64
class The name of the Python class that stored this subscription.
sid The session ID of the subscriber.
authenticatedint 1 for authenticated session IDs, 0 for anonymous session IDs
distributor Identifies the distributor to used for this subscription (e.g. email)
format Identifies the MIME type to be used for this subscription (e.g. text/plain or text/html)
priorityintPrecedence level of this subscription. E.g. 1 overrules 2.
adverb always or never
Indices
sid, authenticated
class

Stores if a subscription rule always/never applies for a certain user, at what priority and using what distribution method/format.

Use the trac.notification.model.Subscription model class to access this table.

Note that this table does not store an (email) address, but the commonly used subscription tuple has an additional item addr. Usually such tuples that correspond to entries in this DB table contain a addr of None. Other tuples may contain an (email) address (e.g. retrieved from a ticket CC field) but are missing the sid item instead.

See trac.notification.model.Subscription

Table subscription_attribute

TableKey
subscription_attributeid
ColumnsTypeNotes
idauto_increment
sid The session ID of the subscriber.
authenticatedint 1 for authenticated session IDs, 0 for anonymous session IDs
class The name of the Python class that stored this subscription attribute.
realm The realm of this subscription (e.g. ticket).
target The target of this subscription (e.g. a ticket id).

Stores attributes to identify the target resource(s) of a subscription (e.g. a watched ticket's id, wiki page filters, joined groups, etc.)

Use the trac.notification.model.SubscriptionAttribute model class to access this table.

See trac.notification.model.SubscriptionAttribute

Open Questions

Rename class column?

Something like rule might be more appropriate.

See also INotificationSubscriber.

Rename distributor column?

transport might be more consistent.

Rename tables?

The current table names are taken from the th:AnnouncerPlugin.

Would this cause problems for users that already used that plugin?

DONE Renamed subscription to notify_subscription.

TODO Rename subscription_attribute when it is implemented.

Remove time and changetime columns?

These are not really needed.

Note: See TracWiki for help on using the wiki.