Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion

Welcome to the CollectiveAccess support forum! Here the developers and community answer questions related to use of the software. Please include the following information in every new issue posted here:

  1. Version of the software that is used, along with browser and version

  2. If the issue pertains to Providence, Pawtucket or both

  3. What steps you’ve taken to try to resolve the issue

  4. Screenshots demonstrating the issue

  5. The relevant sections of your installation profile or configuration including the codes and settings defined for your local elements.


If your question pertains to data import or export, please also include:

  1. Data sample

  2. Your mapping


Answers may be delayed for posts that do not include sufficient information.

Is there any way to disable changelog?

edited April 1 in Troubleshooting

I am using the development code (develop branch) and I just installed the "default" profile on a Linux system with PHP 7.3.

I had a look at the tables and there are some of them that includes too many records:

ca_change_log_subjects -> 3048 rows
ca_change_log -> 2433 rows
ca_change_log_snapshots -> 2433 rows

It is a little bit weird that after a plain install there is so many records on the database.

Is there any way to clean them in a safe way? Is there any way to disable the change log temporarily and then activate it again later? If it is disabled during install, I think installation will run faster, sometimes it get stuck while creating relationships and other objects.

I looked around the forum and the wiki and I didn't find anything to guide me on this.

I will appreciate any advice or comment about it.

Thank you in advance!

Comments

  • I found myself two references to configuration variables for it:

    1. add "CA_DONT_LOG_CHANGES" to your setup.php file and you will disable all log changes.
    2. there is a function on BaseModel::logChanges that allows controlling logging. I think it is a candidate to be used for disabling logging per tables. Any suggestion on how to proceed to create such a feature?
  • You can truncate the change log if you wish. You'll lose the change history of course (eg. the "log" section for all records will be empty), but everything else (save for replication – see below) will still function normally.

    The entries in the change log you're seeing on install log the records created by the installer, such as lists and list items. If you're planning on replicating data to another instance these entries are critical as the logs are what are used to construct the replicated copy. They also provide the basis for change history tracking on those installer-created elements.

  • edited April 3

    Thank you!

    I am thinking about if there is a more compact representation for the log, I mean, try to compact some of the log rows (for example those created during install) in just one row. I will have a look at the code, but I will appreciate any guidance, I will start with the BaseModel.php file but not sure where the replication feature is described in the code.

    Regards.

  • Each log entry maps to a database operation. You really can't compact them. The snapshot of the records can be compressed, but if you start chopping out values you lose the value of the log. At that point, it's probably easier to just truncate it.

Sign In or Register to comment.