What each part of TruCMS stores and where. Use it to find the right model, to avoid table-name clashes, and to see which conventions your own tables should follow. For column details run php artisan db:table {name} on a development copy.
| Area | Tables | Notes |
|---|---|---|
| Pages and posts | pages, page_translations, posts, post_translations | Titles, content and SEO fields are per locale. Page builder HTML and CSS live in page_translations.content and styles; page-level options in pages.settings (JSON) |
| Taxonomy | categories, category_translations, tags, tag_translations, catables, taggables | Polymorphic pivots, today used by posts only |
| Slugs | slugs | The global registry of public paths for every sluggable model |
| Page builder | page_templates, template_assets, page_bindings, website_templates | Library layouts and pages (tagged by theme), their CSS, which pages contain which bound records, and the website-template catalogue |
| Navigation and widgets | menus, menu_items, widget_areas, widgets | Menu items can point at any model through a morph relation |
| Other content | advertisements, faqs, faqs_translations, comments | |
| Users and access | users, password_resets, personal_access_tokens, social_logins, sessions, roles and permissions tables | Roles and permissions use the standard roles, permissions, model_has_roles, model_has_permissions, role_has_permissions |
| Teams | teams, team_user, team_invitations | Collaboration workspaces; unrelated to CMS roles |
| Support | tickets, ticket_messages, ticket_categories, ticket_activities, ticket_references | |
| Settings | settings | Key/value store behind setting(); theme option values are the theme_options row |
| Languages | ltu_languages, ltu_translations, ltu_translation_files, ltu_phrases | The Translations screen; enabled languages are rows of ltu_translations |
| Media and analytics | media, view and visit counters | |
| Framework | cache, cache_locks, jobs, failed_jobs, notifications, countries |
| Tables | Notes |
|---|---|
payments, payment_history, payment_methods, refunds | All payment state for every consumer and gateway. Gateway plugins add no tables |
addresses, countries, provinces, zones, zone_members, organizations, persons, languages | Address and zone tables shared with TruCommerce. Their migrations check Schema::hasTable(), so whichever module migrates first creates them |
| Area | Tables |
|---|---|
| Catalogue | products, master_products, master_product_variants, properties, property_values, model_property_values, taxonomies, taxons, model_taxons, product_tags, product_taggables, product_tabs, product_downloads, product_reviews, videos, model_videos, link_types, link_groups, link_group_items |
| Cart and checkout | carts, cart_items, checkout_intents, adjustments |
| Orders and fulfilment | orders, order_items, shipments, shippables, carriers, shipping_methods, shipping_categories |
| Pricing and tax | promotions, promotion_rules, promotion_actions, coupons, tax_categories, tax_rates |
| Customers and channels | customers, channels |
| Point of sale | pos_registers, pos_sessions |
An orders row exists only after payment succeeds (or at once for cash on delivery). Before that, a checkout is a checkout_intents row with its payments.
Every Booking table starts with booking_. Translated records have a {table}_translations sibling.
| Area | Tables |
|---|---|
| Catalogue | booking_services, booking_service_categories, booking_service_extras, booking_service_fields, booking_service_schedules, booking_compound_services, booking_compound_service_items, booking_collaborative_services, booking_collaborative_service_provider, booking_packages, booking_events |
| People and places | booking_providers, booking_provider_service, booking_provider_schedules, booking_provider_special_days, booking_provider_time_off, booking_locations, booking_customers, booking_customer_groups, booking_customer_packages |
| Appointments | booking_appointments, booking_segments, booking_appointment_extras, booking_recurring_appointments, booking_chain_appointments, booking_waiting_list, booking_check_ins, booking_files, booking_online_meetings, booking_ratings |
| Money | booking_payment_intents, booking_invoices, booking_coupons, booking_taxes |
| Configuration | booking_forms, booking_custom_statuses, booking_notification_templates |
The Booking model reads booking_appointments; a booking is itself the payable for its payments.
testimonials, testimonial_translations) and never reuse a name from the lists above.draft/published; add a PHP enum only if your module already uses them, as Booking and TruPayments do.{singular}_translations table with a locale column and a unique ({foreign_key}, locale) index.status string column (TruPayments writes to it).