New thread for MySQL Issue

41 views
Skip to first unread message

Evan

unread,
Jul 25, 2026, 12:07:42 PM (2 days ago) Jul 25
to Open Source CAD
Huge apologies for the issue, I’ve got accounts switched and shouldn’t have any other issues. I’ll be back home in a while to get you those lines, and hopefully get this figured out! Thanks again for the support!

Evan

unread,
Jul 25, 2026, 3:04:16 PM (2 days ago) Jul 25
to Open Source CAD
I'm home, and ran the console. I have copied my data to my desktop, and ensured that it was copied, not moved. It still does not stay running after terminating it via Task Manager, so here is what I got after running the console commands:

C:\xampp\mysql\bin>mysqld.exe --console
2026-07-25 14:49:27 0 [Note] Starting MariaDB 10.4.32-MariaDB source revision c4143f909528e3fab0677a28631d10389354c491 as process 31104
2026-07-25 14:49:28 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2026-07-25 14:49:28 0 [Note] InnoDB: Uses event mutexes
2026-07-25 14:49:28 0 [Note] InnoDB: Compressed tables use zlib 1.3
2026-07-25 14:49:28 0 [Note] InnoDB: Number of pools: 1
2026-07-25 14:49:28 0 [Note] InnoDB: Using SSE2 crc32 instructions
2026-07-25 14:49:28 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2026-07-25 14:49:28 0 [Note] InnoDB: Completed initialization of buffer pool
2026-07-25 14:49:28 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2026-07-25 14:49:28 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2026-07-25 14:49:28 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2026-07-25 14:49:28 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB.
2026-07-25 14:49:28 0 [Note] InnoDB: Waiting for purge to start
2026-07-25 14:49:28 0 [Note] InnoDB: 10.4.32 started; log sequence number 11159591; transaction id 21893
2026-07-25 14:49:28 0 [Note] InnoDB: Loading buffer pool(s) from c:\xampp\mysql\data\ib_buffer_pool
2026-07-25 14:49:28 0 [Note] Plugin 'FEEDBACK' is disabled.
2026-07-25 14:49:28 0 [Note] InnoDB: Buffer pool(s) load completed at 260725 14:49:28
2026-07-25 14:49:28 0 [Note] Server socket created on IP: '::'.
2026-07-25 14:49:28 0 [ERROR] Can't start server: Bind on TCP/IP port. Got error: 10048: Only one usage of each socket address (protocol/network address/port) is normally permitted.

2026-07-25 14:49:28 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
2026-07-25 14:49:28 0 [ERROR] Aborting

**I do not have another server running on that port. Also am unsure of how to check port statuses.

Evan

unread,
Jul 25, 2026, 3:05:37 PM (2 days ago) Jul 25
to Open Source CAD
C:\Users\theev>netstat -ano | findstr 3306
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       12296
  TCP    [::]:3306              [::]:0                 LISTENING       12296

Evan

unread,
Jul 25, 2026, 3:15:33 PM (2 days ago) Jul 25
to Open Source CAD
When running the console commands, I also receive this error;

C:\xampp\mysql\bin>mysqld.exe --console
2026-07-25 15:14:42 0 [Note] Starting MariaDB 10.4.32-MariaDB source revision c4143f909528e3fab0677a28631d10389354c491 as process 10796
2026-07-25 15:14:42 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2026-07-25 15:14:42 0 [Note] InnoDB: Uses event mutexes
2026-07-25 15:14:42 0 [Note] InnoDB: Compressed tables use zlib 1.3
2026-07-25 15:14:42 0 [Note] InnoDB: Number of pools: 1
2026-07-25 15:14:42 0 [Note] InnoDB: Using SSE2 crc32 instructions
2026-07-25 15:14:42 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2026-07-25 15:14:42 0 [Note] InnoDB: Completed initialization of buffer pool
2026-07-25 15:14:42 0 [Note] InnoDB: 128 out of 128 rollback segments are active.
2026-07-25 15:14:42 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2026-07-25 15:14:42 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2026-07-25 15:14:42 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB.
2026-07-25 15:14:42 0 [Note] InnoDB: Waiting for purge to start
2026-07-25 15:14:42 0 [Note] InnoDB: 10.4.32 started; log sequence number 11161729; transaction id 21893
2026-07-25 15:14:42 0 [Note] InnoDB: Loading buffer pool(s) from c:\xampp\mysql\data\ib_buffer_pool
2026-07-25 15:14:42 0 [Note] Plugin 'FEEDBACK' is disabled.
2026-07-25 15:14:42 0 [Note] InnoDB: Buffer pool(s) load completed at 260725 15:14:42
2026-07-25 15:14:42 0 [Note] Server socket created on IP: '::'.
2026-07-25 15:14:42 0 [ERROR] mysqld.exe: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
2026-07-25 15:14:42 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
2026-07-25 15:14:42 0 [ERROR] Aborting

Eric Osterberg

unread,
Jul 25, 2026, 5:20:53 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
There are a whole bunch of emails here.
You said: " **I do not have another server running on that port. Also am unsure of how to check port statuses."

But you do have another service running that is using port 3306, and you ran the correct command. The results is PID (Process ID) 12296.
C:\Users\theev>netstat -ano | findstr 3306
  TCP    0.0.0.0:3306           0.0.0.0:0              LISTENING       12296
  TCP    [::]:3306              [::]:0                 LISTENING       12296


Claude Code can be more cheerful than I am at the moment. Hopefully someone here in the community can pick up from here.
The issue you are running into is not a TicketsCAD problem. This is a crashed MariaDB server because the system was running when Windows crashed due to your power issues. Working through this with Google, ChatGPT or Claude AI might be helpful. Here's a reply from my support system. I didn't want to go back and forth 3 times with each partial email, try to correlate the replies, or post three separate replies... This reply only has partial context, but basically, this isn't a TicketsCAD issue; your database server needs to recover from the crash.

Hi Evan,
That did it - your console output found the exact problem, and it is good news. Look at these two lines from what you sent:
InnoDB: 10.4.32 started; log sequence number 11161729
[ERROR] Table '.\mysql\db' is marked as crashed and last (automatic?) repair failed
The first line is InnoDB - the engine that holds your incidents - starting up perfectly. The second line is the real problem: a small internal MySQL bookkeeping table called mysql.db got marked as crashed. That table stores permission settings, not your data. So your three hours of work are safe on disk. We just need to repair that one internal table and MySQL will start again.
MySQL being stopped right now is exactly what we need to repair it safely. Make sure you have already copied C:\xampp\mysql\data somewhere safe, then do this.
Step 1 - Find out which repair tool to use. Open the folder C:\xampp\mysql\data\mysql and look for the file named db. If you see db.MAI, it is an "Aria" table. If you see db.MYI, it is a "MyISAM" table. On most XAMPP installs it will be db.MAI.
Step 2 - Repair it. Open a Command Prompt and type this first:
cd C:\xampp\mysql\bin
Then, if you saw db.MAI, type this:
aria_chk --recover --force "C:\xampp\mysql\data\mysql\db"
Or, if you saw db.MYI, type this instead:
myisamchk --recover --force "C:\xampp\mysql\data\mysql\db"
It should print that it recovered the table.
Step 3 - Start MySQL again from the XAMPP Control Panel. It should come up and stay green now, and TicketsCAD should load with all of your data.
If, when you start it, it complains about a different internal table (something like mysql.tables_priv or mysql.columns_priv), that is the same kind of thing - just run the same command from Step 2 with that table's name in place of db.
If the repair tool says it still cannot fix it, do not worry - because your actual data lives on the healthy InnoDB engine, we can still get all of it back a different way, and I will send you those steps. But the repair above solves this the large majority of the time.
Your incident data was never the thing that was damaged - this was a permissions table, not your records. We are close now.
Eric



--
You received this message because you are subscribed to the Google Groups "Open Source CAD" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-source-c...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/open-source-cad/3b29f60e-0930-41c3-99c7-604506fab4b7n%40googlegroups.com.

Evan

unread,
Jul 25, 2026, 6:54:21 PM (2 days ago) Jul 25
to Open Source CAD
I went at it for a while and got it to reload, THANK YOU SO MUCH!!! Most of my stuff is here, however nothing under the personnel tab works. I've added personnel however they simply don't load, but when I go to do things such as linking a login account to a person, it shows there. I created multiple personnel, of myself because I thought it just didn't load, however they did, but it doesn't show in the personnel tab. Equipment doesn't work, vehicles, etc. Not sure if it's a data reading issue, or what.  Here's some screenshots of what I mean.Screenshot 2026-07-25 185139.png


Screenshot 2026-07-25 184816.pngScreenshot 2026-07-25 184539.png

Eric Osterberg

unread,
Jul 25, 2026, 7:31:50 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
Without diving deeper, I'm not sure, but I'll assume that mapping to a specific organization isolates the other organizations. Is everyone in the same org?
There are quite a few videos and other written documentation. Spending some time with those + TicketCAD, you'll learn and can recommend documentation improvements if any are needed.

Evan

unread,
Jul 25, 2026, 7:44:14 PM (2 days ago) Jul 25
to Open Source CAD
I've created a few different personnel. It appears that is doesn't load any in the personnel tab. Like I said, equipment doesn't work, vehicles, etc. I'm doing the same thing I did when I set up the first time, so I'm stumped. I'm sure it's probably user error, but again, not sure. All personnel I've created so far are in the same organization, and I have it set to show "All" personnel, to which there are none, and it shows 0, however in settings, system overview shows that I have 8. Teams do not work either.

The teams tab in the system settings shows: 
Failed to load: Failed to load teams: SQLSTATE[42S02]: Base table or view not found: 1932 Table 'ticketscad.teams' doesn't exist in engine

Eric Osterberg

unread,
Jul 25, 2026, 9:20:48 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
Hi Evan,

That error message is the key, and it is good news again: your people are still there.

The important line is "Table 'ticketscad.teams' doesn't exist in engine." That is not TicketsCAD saying the table is empty - it is MySQL saying that particular table got damaged in the crash. Here is why it makes everything look broken at once: the Personnel screen builds its list by joining to the teams table, so when teams is damaged the whole query fails and you get zero people, even though your personnel records are perfectly fine. That is also exactly why Settings, System Overview still correctly reports 8 - that count reads the personnel table directly and never touches teams. Same story for Equipment, Vehicles and Teams.

So the fix is to repair those specific damaged tables. Your personnel, incidents and units are not among them.

Step 1 - Find out exactly which tables are damaged. Open a Command Prompt and run these two lines:

    cd C:\xampp\mysql\bin
    mysqlcheck.exe -u root ticketscad
That prints one line per table. Most will say OK. Copy me any that do not - those are the damaged ones. You can expect teams, equipment and vehicles to appear based on what you have seen.

Step 2 - Make sure you still have a copy of C:\xampp\mysql\data somewhere safe before changing anything. If you already made one earlier, you are covered.

Step 3 - Drop the damaged tables. This sounds scary, but these tables are damaged and unreadable already, and TicketsCAD will rebuild them empty in the next step. Open phpMyAdmin at http://localhost/phpmyadmin, choose the ticketscad database, click the SQL tab, and run this for each damaged table (this example is teams):
    DROP TABLE IF EXISTS teams;
If phpMyAdmin refuses, run this first in the same SQL box, then try again:
    SET FOREIGN_KEY_CHECKS=0;

Step 4 - Let TicketsCAD recreate them. In a Command Prompt:
    cd C:\xampp\htdocs\ticketscad
    C:\xampp\php\php.exe tools\install_fresh.php
This is safe to run on an existing installation - it only creates what is missing and applies pending updates. It does not touch data that is already there. You should see it report tables created and migrations applied.

Step 5 - Reload TicketsCAD. Personnel should list your 8 people again, and Teams, Equipment and Vehicles should open normally. The only thing actually lost is whatever was inside the damaged tables themselves - so if you had created any teams, you will need to create those few again. Your people, units and incidents come back untouched.

If mysqlcheck reports something it cannot fix, or a DROP refuses even with the foreign key line, stop there and send me the exact message rather than forcing it - there is another way in, and I would rather look first.

For what it is worth, none of this was user error. A hard power-off with MySQL running is the one thing that can leave individual tables in this state, and it is unlucky rather than anything you did wrong. Once you are back up, turning on the built-in backups in Settings means a repeat is a five-minute restore instead of an evening.

Eric

Evan

unread,
Jul 25, 2026, 9:26:08 PM (2 days ago) Jul 25
to Open Source CAD
You are seriously fantastic, I'm completing the rest of the steps now. Here are the "Non-OK" tables:

ticketscad.member_comm_identifiers
Error    : Table 'ticketscad.member_comm_identifiers' doesn't exist in engine
status   : Operation failed

ticketscad.newui_vehicles
Error    : Table 'ticketscad.newui_vehicles' doesn't exist in engine
status   : Operation failed

ticketscad.permission_review_dismissals
Error    : Table 'ticketscad.permission_review_dismissals' doesn't exist in engine
status   : Operation failed

ticketscad.teams
Error    : Table 'ticketscad.teams' doesn't exist in engine
status   : Operation failed

Eric Osterberg

unread,
Jul 25, 2026, 9:31:10 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
Evan,

That list is about as good an outcome as we could have hoped for. Look at what is NOT on it: member, ticket, responder and facilities are all fine. That means your 8 personnel, your incidents, your units and your facilities are intact. The four damaged tables are side tables, and one of them (permission_review_dismissals) is pure interface bookkeeping with no data of yours in it at all.

Here is exactly what to do. All four failed the same way - the table is registered but its data file is gone - so they get the same treatment: drop them, then let TicketsCAD rebuild them empty.

Step 1 - Confirm your people are really there, so you can relax before touching anything. In phpMyAdmin, open the ticketscad database, click the SQL tab and run:
SELECT COUNT(*) FROM member;
You should get 8. If you do, your data is safe and the rest of this is just repair work.

Step 2 - Drop the four damaged tables. In that same SQL box, run all four lines together:

DROP TABLE IF EXISTS teams;
DROP TABLE IF EXISTS newui_vehicles;
DROP TABLE IF EXISTS member_comm_identifiers;
DROP TABLE IF EXISTS permission_review_dismissals;

If any of them refuses with a complaint about a missing tablespace or a foreign key, run this line first and then try that DROP again:
SET SESSION foreign_key_checks = 0;

Step 3 - Let TicketsCAD rebuild them. In a Command Prompt:

cd C:\xampp\htdocs\ticketscad
C:\xampp\php\php.exe tools\install_fresh.php
This is safe on an existing install. It creates only what is missing and applies pending updates; it does not touch data that is already there. Watch for it to report the tables being created.

Step 4 - Reload TicketsCAD. Personnel should list your 8 people again, and Teams, Vehicles and Equipment should all open normally.

What you actually lost, to set expectations honestly: only whatever lived inside those four tables. That means any teams you had created, any vehicles you had added, and any radio callsigns or comm identifiers you had attached to people. If you entered callsigns on those 8 personnel records, you will need to re-enter those - the people themselves come back untouched. Everything else survives.

One more thing worth doing once you are running: turn on the built-in backups under Settings. A hard power-off with MySQL running is the one thing that causes this, and with a backup in place a repeat is a five-minute restore instead of an evening of detective work.

And thank you for the detailed reports through all of this. Your case led directly to a real improvement: TicketsCAD now detects this exact situation and tells you plainly that a table is damaged and your data is probably recoverable, instead of just showing you an empty list and letting you assume the worst. That change is already in the repository for everyone.

Eric

Evan

unread,
Jul 25, 2026, 9:37:47 PM (2 days ago) Jul 25
to Open Source CAD
I dropped all 4, and they completed. " mysqlcheck.exe -u root ticketscad" returns all "OK" however, the 

" C:\xampp\php\php.exe tools\install_fresh.php" Results: 0 applied, 85 already in place, 1 failed

Complete Bottom Result:

External API (Phase 94 Stage 1) schema:
Phase 94 Stage 1 — External API Integration schema
===================================================
  [1.2] external_api_tokens table... OK
  [1.3] external_api_rate_limits table... OK
  [1.4] webhook_subscriptions table (NEW per Decision #3)... OK
  [1.5] migrate legacy webhooks → webhook_subscriptions... OK (0 migrated)
  [1.6] webhook_deliveries extension... OK
  [1.7] RBAC permissions (action.manage_external_api_tokens, action.manage_webhooks)... OK (0 new permissions)
  [1.8] settings defaults... OK (0 new settings seeded; existing values preserved)

Phase 94 Stage 1 complete.
Re-run is idempotent. Next: Stage 2 (auth middleware in inc/external-auth.php).

Webroot defenses:

=== Result: 0 applied, 85 already in place, 1 failed ===

Eric Osterberg

unread,
Jul 25, 2026, 9:45:58 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
Evan,

Almost there - and mysqlcheck coming back all OK means the damage is gone. One more step.

Here is what happened: TicketsCAD keeps a record of which database updates it has already applied. Dropping those four tables did not erase that record, so the updater looked at its list, saw "already done" 85 times, and skipped right past the very steps that would have rebuilt your tables. That is why it applied 0.

The fix is to tell it to re-run everything anyway. It is safe: every one of those steps is written to create only what is missing and to leave existing data alone.


In a Command Prompt:
cd C:\xampp\htdocs\ticketscad
C:\xampp\php\php.exe sql\run_migrations.php --force

That will churn through all 85 and recreate the four missing tables (teams, newui_vehicles, member_comm_identifiers and permission_review_dismissals). Then reload TicketsCAD - Personnel, Teams and Vehicles should all work.

About that "1 failed" - I would like to see which one it is before you call this done. Run the command above and look for a line starting with FAIL or ERROR, then send me that line and the two or three lines around it. It may well be harmless, but I do not want to guess. If you would rather capture the whole thing, this writes it to a file you can attach:
C:\xampp\php\php.exe sql\run_migrations.php --force > migrate-log.txt 2>&1

Once you are running again, confirm your people are back with a quick look at Personnel - you should see all 8.

Eric

Evan

unread,
Jul 25, 2026, 9:57:28 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
Disregard the email from the other account. I switched to my phone and it changed accounts.

I’ve run the command, it completed, and I got a Summary of 153 applied, and 0 failed. So maybe it fixed itself? If you want me to check some things out further let me know. However, to restart, I’ve just been turning the XAMPP servers off and back on… call me daft if that’s a wrong way, and please advise if there is a specific restart I need to do.


Evan Leatherman | CETa
📞 +1 (269) 298-6769 | ✉️ evanp...@gmail.com
"Dare to reach out your hand into the darkness, 
to pull another hand into the light" -Norman B. Rice
Danimex Communication on LinkedIn: #solvingforsafer #safer #solvingforsafer  #motorolasolutions #danimex…
Motorola Solutions on LinkedIn: #employeeappreciationday | 14 comments

Eric Osterberg

unread,
Jul 25, 2026, 10:33:01 PM (2 days ago) Jul 25
to open-so...@googlegroups.com
Evan,
That is the fix. When you saw "0 applied, 85 already in place, 1 failed" earlier, the updater was skipping the very steps that rebuild those tables because its records said they were already done. Forcing it made it actually run them - 153 applied, 0 failed means everything rebuilt cleanly, and that stray failure went with it.
Before we call it done, would you confirm three things in the app? Open Personnel and check that all 8 people are listed. Then open Teams, Vehicles and Equipment - each should load a normal (probably empty) page instead of an error. If all four behave, you are fully recovered. The only things actually gone are whatever lived inside those four tables: any teams you had made, any vehicles, and any radio callsigns or comm identifiers attached to people. The people themselves, your incidents and your units all came through.
On restarting - you are not daft, you are doing it exactly right. Stopping and starting Apache and MySQL from the XAMPP Control Panel is the correct way to restart TicketsCAD, and there is nothing more to it. There is no separate TicketsCAD service.
The one thing that matters, and it is the thing that caused all of this: before you shut the computer down or let the battery die, hit Stop on MySQL in that same Control Panel first. Clicking Stop is clean. Losing power while MySQL is running is what corrupted those four tables. Same rule for a laptop lid closing into sleep on battery - if it is going to power off, stop MySQL first.
Last thing, and it is the one I would most like you to do. There is now an automatic backup built into TicketsCAD - it takes a daily backup on its own, checks that each one is actually readable rather than just assuming, keeps the last several, and there is a restore tool to bring one back. That is new this week, and honestly your experience is why I moved it up the list. With it running, a repeat of this week would be a five minute restore instead of two evenings.
To pick it up you would update your copy. The cleanest way is with git, where a single "git pull" brings in every fix from then on instead of re-downloading anything. If you have not used git before, this walks through it on Windows with no prior command line experience assumed:
Thanks for your patience through all of this, and for the detail in every message - it made the diagnosis fast, and it led directly to real improvements in the software that everyone gets.
Eric


Evan

unread,
Jul 25, 2026, 10:40:32 PM (2 days ago) Jul 25
to Open Source CAD
You sir, are purely fantastic. Thank you for the help! I merely ask the universe if something is possible and you seem to wave your magic wand and make it so! Only tidbit is that Teams doesn't work yet... Different error than last time however. When attempting to save a team, I get  Save failed: HTTP 400, and in the settings, (config) teams section, I get this:

   Failed to load: Failed to load teams: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't.team' in 'field list'  

It is absolutely okay if you want to hold off until tomorrow or a later date to continue, as I can absolutely go through and finish work on my other stuff such as full personnel work and equipment/vehicle logging.

Eric Osterberg

unread,
Jul 26, 2026, 12:43:30 AM (yesterday) Jul 26
to open-so...@googlegroups.com
Evan,

Good news: that error tells me exactly what happened, and it is our bug, not anything you did.

There are two different definitions of the teams table in our code - an older one and a newer one - and when your database rebuilt those tables, it happened to create the newer shape while the Teams screen is written against the older one. That mismatch is the "Unknown column t.team" message, and it is also why saving a team returns a 400. I am fixing that properly on our end so it cannot happen to anyone else.

To unblock you now, in phpMyAdmin choose the ticketscad database, open the SQL tab and run this. It replaces the empty teams table with the shape the Teams screen expects (it is empty, so nothing is lost):

DROP TABLE IF EXISTS teams;
CREATE TABLE teams (
  id int(7) NOT NULL AUTO_INCREMENT,
  team varchar(48) NOT NULL,
  `sub-group` varchar(48) NOT NULL DEFAULT '',
  ttypes_id int(7) NOT NULL DEFAULT 0,
  mission varchar(48) NOT NULL DEFAULT '',
  leader int(4) NOT NULL DEFAULT 0,
  leader_dpty int(4) NOT NULL DEFAULT 0,
  formed date DEFAULT NULL,
  `by` int(7) NOT NULL DEFAULT 0,
  `from` varchar(16) NOT NULL DEFAULT '',
  `on` datetime DEFAULT NULL,
  PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


Then reload TicketsCAD and try Teams again - both loading and saving should work.

And please do go enjoy the personnel, equipment and vehicle work. You have already done more than your share of debugging this week, and honestly your reports have made the software materially better - three separate improvements shipped because of what you hit.

Eric

Evan

unread,
Jul 26, 2026, 12:51:01 AM (yesterday) Jul 26
to Open Source CAD
Unfortunate news, I did this in SQL and ran it. It succeded. However, All personnel, equipment, and vehicles dissappeared. It still shows them in system overview as 11 active users, but none in the personnel tab... 

Evan

unread,
Jul 26, 2026, 12:54:02 AM (yesterday) Jul 26
to Open Source CAD
Update: I re-ran the "C:\xampp\php\php.exe sql\run_migrations.php --force" Command, and it got my personnel, vehicles, and equipment to return visible. Teams saving however still returns with an HTTP400 error.

Eric Osterberg

unread,
Jul 26, 2026, 1:37:41 AM (yesterday) Jul 26
to open-so...@googlegroups.com
Subject: Re: Teams doesn't work yet - fixed, and the SQL I sent you was incomplete
Evan,
First, an apology. The CREATE TABLE statement I emailed you was incomplete. It
had the right column names but was missing nine columns that the save path
needs. That caused both of the things you saw:
The Teams save kept returning HTTP 400, because saving a team writes to columns
that table didn't have.
Your personnel, equipment and vehicles disappeared, because several screens
filter on a column that was missing, so those queries failed and the pages came
back empty. Your data was never gone - and you found the right fix on your own
by re-running the migrations with --force, which is exactly what I would have
told you to do.
You should not have had to debug my SQL. That is now fixed in the product
rather than in an email: the upgrade checks for every column the Teams screen
needs and adds whatever is missing. I reproduced your exact error on a copy of
your table shape, confirmed it fails the same way you saw, then ran the fix and
confirmed a team saves correctly and existing teams survive untouched.
TO GET THE FIX
v4.1.0 is out. If you cloned the repository with git:
Step 1 - git pull
Step 2 - php sql/run_migrations.php
That's it. The migration is safe to run more than once and does not delete
anything.
If you downloaded a zip file instead of cloning, it is worth ten minutes to
switch over to git. After that, staying current is just "git pull" - you get
fixes the day they land instead of waiting for me to bundle a release, which
matters when you are the one who found the bug. There are two short
walkthroughs:
When you have updated, could you confirm the Teams screen loads and that
creating a team saves? That is the one thing I would like verified by someone
other than me.
ON RESTARTING
You asked about restarting - turning the XAMPP servers off and back on from the
XAMPP Control Panel is exactly right, that is the normal way on XAMPP. Two
small refinements:
Use Stop and wait until the panel actually shows MySQL as stopped before you
start it again. Closing the window or ending the process is what leaves tables
damaged.
After a power loss or a battery shutdown, MySQL may take a minute or two on the
next start while it repairs itself. Let it finish. That pause is the thing that
originally made your install look like a fresh one.
SOMETHING THAT CAME OUT OF YOUR PROBLEM
Your laptop losing power is the reason v4.1.0 has automatic backups. They are
on by default now, so you do not have to do anything - a daily backup runs on
its own and every archive is checked to make sure it really contains your data
before it counts as a success.
There is also a restore tool, which did not exist before. And this is the part
worth two minutes of your time:
php tools/restore.php --drill
Point it at your newest backup and it will restore that backup into a temporary
scratch database, tell you how many tables and rows came back compared to what
you have live, then delete the scratch copy. Your real database is only read,
never modified. It answers the question "would this backup actually save me,"
which is not a question you want to be asking for the first time during an
actual emergency.
Thanks for sticking with this. Four rounds of "it's still broken" is a lot of
patience, and every round found something real.
Eric


Evan

unread,
Jul 26, 2026, 1:49:14 AM (yesterday) Jul 26
to open-so...@googlegroups.com
I absolutely love this stuff, trial and error is what I live for! I’m glad I could shed some light on issues, even if just user error, and I’m very happy to see they are being pushed into releases for other people to use and benefit from! It’s very late where I’m at, and I’m reading this from my phone. I’m going to get some sleep and I’ll update you in the morning or early afternoon. (America/Detroit Time, currently 1:45am.) I look forward to continuing my time and work with TicketsCad. You have an amazing piece of work that could have even greater potential and success in the future on a much larger scale! If that’s what you’re aiming for of course. It’s fantastic, well built, easy to use, and so far I’ve loved every second of using it and working with you to find solutions to problems and errors within. I’ll talk to you tomorrow! Have a good one, and thanks again for working with me on this!



Evan Leatherman | CETa
📞 +1 (269) 298-6769 | ✉️ evanp...@gmail.com
"Dare to reach out your hand into the darkness, 
to pull another hand into the light" -Norman B. Rice
Danimex Communication on LinkedIn: #solvingforsafer #safer #solvingforsafer  #motorolasolutions #danimex…
Motorola Solutions on LinkedIn: #employeeappreciationday | 14 comments

Eric Osterberg

unread,
Jul 26, 2026, 1:51:16 AM (yesterday) Jul 26
to open-so...@googlegroups.com
Yup, it's very late here too.
Have a good night.

--
You received this message because you are subscribed to the Google Groups "Open Source CAD" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-source-c...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages