1

When I use a fill-in (sign-up) profile on a browser where I am logged in, there is no problem filling in the forms and saving. However, when I try the form on another browser where I am not logged in (or on the same browser after I log out), I get this error message: DB error: No such table exists.

The debugging text shows that civicrm_acl is missing and in fact, when I examine the database, there is no table with that name. This problem did not exist before so I am wondering what happened.

Below is the debugging text:

Sorry but we are not able to provide this at the moment. DB Error: no such table Error Details Database Error Code: Table 'xxxxx_civicrm.civicrm_acl' doesn't exist, 1146 Additional Details:

Array ( [callback] => Array ( [0] => CRM_Core_Error [1] => handle )

[code] => -18
[message] => DB Error: no such table
[mode] => 16
[debug_info] =>    SELECT          civicrm_acl.*
                    FROM            civicrm_acl
                    INNER JOIN      civicrm_option_group og
                            ON      og.name = 'acl_role'
                    INNER JOIN      civicrm_option_value ov
                            ON      civicrm_acl.entity_table   = 'civicrm_acl_role'
                            AND     ov.option_group_id  = og.id
                            AND     civicrm_acl.entity_id      = ov.value
                            AND     ov.is_active        = 1
                    INNER JOIN      civicrm_acl_entity_role
                            ON      civicrm_acl_entity_role.acl_role_id = civicrm_acl.entity_id
                            AND     civicrm_acl_entity_role.is_active    = 1
                    INNER JOIN  civicrm_group_contact
                            ON      civicrm_acl_entity_role.entity_id      = civicrm_group_contact.group_id
                            AND     civicrm_acl_entity_role.entity_table   = 'civicrm_group'
                    WHERE       civicrm_acl.entity_table       = 'civicrm_acl_role'
                        AND     civicrm_acl.is_active          = 1
                        AND     civicrm_group_contact.contact_id         = 0
                        AND     civicrm_group_contact.status             = 'Added' [nativecode=1146 ** Table 'xxxxx_civicrm.civicrm_acl' doesn't exist]
[type] => DB_Error
[user_info] =>    SELECT          civicrm_acl.*
                    FROM            civicrm_acl
                    INNER JOIN      civicrm_option_group og
                            ON      og.name = 'acl_role'
                    INNER JOIN      civicrm_option_value ov
                            ON      civicrm_acl.entity_table   = 'civicrm_acl_role'
                            AND     ov.option_group_id  = og.id
                            AND     civicrm_acl.entity_id      = ov.value
                            AND     ov.is_active        = 1
                    INNER JOIN      civicrm_acl_entity_role
                            ON      civicrm_acl_entity_role.acl_role_id = civicrm_acl.entity_id
                            AND     civicrm_acl_entity_role.is_active    = 1
                    INNER JOIN  civicrm_group_contact
                            ON      civicrm_acl_entity_role.entity_id      = civicrm_group_contact.group_id
                            AND     civicrm_acl_entity_role.entity_table   = 'civicrm_group'
                    WHERE       civicrm_acl.entity_table       = 'civicrm_acl_role'
                        AND     civicrm_acl.is_active          = 1
                        AND     civicrm_group_contact.contact_id         = 0
                        AND     civicrm_group_contact.status             = 'Added' [nativecode=1146 ** Table 'xxxxx_civicrm.civicrm_acl' doesn't exist]
[to_string] => [db_error: message="DB Error: no such table" code=-18 mode=callback callback=CRM_Core_Error::handle prefix="" info="   SELECT          civicrm_acl.*
                    FROM            civicrm_acl
                    INNER JOIN      civicrm_option_group og
                            ON      og.name = 'acl_role'
                    INNER JOIN      civicrm_option_value ov
                            ON      civicrm_acl.entity_table   = 'civicrm_acl_role'
                            AND     ov.option_group_id  = og.id
                            AND     civicrm_acl.entity_id      = ov.value
                            AND     ov.is_active        = 1
                    INNER JOIN      civicrm_acl_entity_role
                            ON      civicrm_acl_entity_role.acl_role_id = civicrm_acl.entity_id
                            AND     civicrm_acl_entity_role.is_active    = 1
                    INNER JOIN  civicrm_group_contact
                            ON      civicrm_acl_entity_role.entity_id      = civicrm_group_contact.group_id
                            AND     civicrm_acl_entity_role.entity_table   = 'civicrm_group'
                    WHERE       civicrm_acl.entity_table       = 'civicrm_acl_role'
                        AND     civicrm_acl.is_active          = 1
                        AND     civicrm_group_contact.contact_id         = 0
                        AND     civicrm_group_contact.status             = 'Added' [nativecode=1146 ** Table 'xxxxx_civicrm.civicrm_acl' doesn't exist]"]

)

Return to home page.

Blockquote

2 Answers 2

2

I don't how this situation could have arisen, but the solution is to install CiviCRM (your version) on a spare database and then copy over the civicrm_acl table to the live database.

You may need to drop the four *acl* tables and copy all four from the spare database, but as long as in the end, you have all of the required tables, it should work.

1

My suspicion is that when you are logged in, you are the administrator? If so, my guess is that the ACL process is skipped for admins so the error condition is not hit.

It sounds like you have a bad install which clobbered the civicrm_acl table, especially if you don't even see it in mysql.

I am not positive if there is an easy way to rectify the problem. Once I confirmed that the table was missing, I would probably do a mysqldump of it from a system that did have it (freshly installed perhaps?) and then apply it. Of course, it also leads me to wonder what other tables are missing.

3
  • Dave, Thanks for your response. The DB install was done a long time ago and we did not have any of these problems before. However, a few months back we switched from a wordpress multisite setup to a simple wordpress site (a completely new website with one of the domains we were using before) but left civicrm in place. Not sure how this could affect the civicrm database table though.
    – Leslie
    Commented Sep 17, 2015 at 2:09
  • Leslie, have you upgraded civicrm lately? What version are you running? Having come from a multisite might be a clue. Gotta think about that.
    – DaveD
    Commented Sep 17, 2015 at 2:13
  • Yes, during that transition period, we upgraded civicrm and currently are running civicrm 4.6.3.
    – Leslie
    Commented Sep 17, 2015 at 12:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.