Difference between revisions of "Understanding database timelines in Lianja"

From Lianjapedia
Jump to: navigation, search
m (Yvonne.milne moved page Database Timelines to Understanding database timelines in Lianja without leaving a redirect)
(Using Database Timelines)
Line 16: Line 16:
 
</pre>
 
</pre>
  
Timelines can be enabled on a per App basis using the '''Timelines Enabled''' setting in the [[App Settings]].  Individual sections also have a '''Timelines Enabled''' attribute in their [[:Category:Attributes#Sections|Attributes]].  The '''Timelines Enabled''' App Setting must be checked (True) for the section '''Timelines Enabled''' attribute to be applied.  
+
[[{{ns:file}}:enable_timelines.png|450px|thumb|left|link={{filepath:enable_timelines.png}}|App Settings: Enable timelines]]
 +
 
 +
 
 +
 
 +
Timelines can be enabled on a per App basis using the '''Timelines Enabled''' setting in the [[App Settings]].   
 +
 
 +
<br clear=all>
 +
 
 +
[[{{ns:file}}:enable_timelines2.png|450px|thumb|left|link={{filepath:enable_timelines2.png}}|Section Attributes: Enable timelines]]
 +
 
 +
 
 +
 
 +
Individual sections also have a '''Timelines Enabled''' attribute in their [[:Category:Attributes#Sections|Attributes]].  The '''Timelines Enabled''' App Setting must be checked (True) for the section '''Timelines Enabled''' attribute to be applied.  
  
 
===Viewing a timeline===
 
===Viewing a timeline===

Revision as of 04:36, 27 October 2017

Under Construction

See Also

Database Timelines Commands and Functions

What are Database Timelines?

Lianja database timelines provide row versioning for database tables for all CRUD operations performed on data. Whenever a change is made to a table that is timeline enabled then delta changes are automatically recorded for each transaction. Changes made to any tables that are timeline enabled can be undone much like you would undo changes to program code that you edit in a text editor.

Database timelines record who did what from where, when they did it and what they changed.

Using Database Timelines

To enable database timelines all you need to do is issue the set timeline on command in your Lianja configuration file.

set timeline on
App Settings: Enable timelines


Timelines can be enabled on a per App basis using the Timelines Enabled setting in the App Settings.


Section Attributes: Enable timelines


Individual sections also have a Timelines Enabled attribute in their Attributes. The Timelines Enabled App Setting must be checked (True) for the section Timelines Enabled attribute to be applied.

Viewing a timeline

Timeline data can be viewed in the following ways:

list timeline
 [range <begin as string-date> [, <end as string-date>]]
 [for <condition as logical>]
 [to file <filename as character>]

To view a timeline for a particular table e.g.

list timeline for table = "customers"

To view a timeline since a certain date use the range keyword. Notice that the date range is encoded as a string in the format "YYYYMMDDHH:MM:SS:". This can be abbreviated e.g.

// list the timeline since 1st October 2017
list timeline range "20171001" 

// list the timeline between the 1st and 7th of October 2017 
list timeline range "20171001","20171007" 

SQL SELECT can be used with the Lianja Data Object functions (rdo_xxx() functions) to traverse the timeline and generate html if required e.g.

echo "Timeline report<br>"
results = rdo_query("SELECT * FROM systimeline WHERE between(timestamp, '20091001', '20091007')")
foreach results as row
    echo "Table " + row["TABLE"] + " changed by " + row["USER"] + " on " + row["TIMESTAMP"]
    echo ", command was " + row["COMMAND"] + "<br>"
endfor
results = null

Undoing database changes

You can undo database changes with the rollback timeline command. The range and for clauses can also be specified in the same way as the list timeline command e.g.

rollback timeline [range <begin as string-date> [, <end as string-date>]]
 [for <condition as logical>]

Clearing a timeline

The clear timeline command will reset a timeline.

clear timeline