webForumDet fria alternativet

Backup och kopiera projekt mellan olika databaser med olika ID-nummer

PHP

1 svar · 825 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hej!

Jag har två frågor. Den första frågan är hur jag på enklast sätt skapar en backupfil från databasen genom PHP. Jag tänker mig att jag loopar ut tabellnamnen med kryssboxar på sidan och så får man välja vilka tabeller man vill exportera. Jag kan då loopa ut sql-strängar alá phpMyAdmin som sedan kan köras. Så långt är jag med, men hur får jag all den texten att sparas till en .sql eller .zip-fil som användaren kan ladda hem? Finns det något färdigt script för detta som inte är allt för avancerat och enkelt att integrera?

Fråga två gäller import av ovanstående till en databas där det redan finns data. Hur man hanterar samma ID:n.
Jag har en databas med tabellerna projekt, användare och poster.
Alla projekt har ett ID för vilken användare som skapade det och alla poster har ett ID för vilket projekt det tillhör samt vilken användare som skapade den. Låt säga att jag importerar ett projekt med ID 1, tre användare med ID 1-3 och fem poster med ID 1-5. Till databasen jag importerar till finns dessa ID:n redan för andra användare/projekt/poster. Hur får jag de nya posterna att på bästa (automatiskt?) sätt att få nya ID-nummer och alla relationer hänger med?

Kan man i tabellinställningarna se till att sånt uppdateras? I mitt databasprogram (Sequel) finns det en flik som heter relationer som jag aldrig har använt, men om något så borde ju det vara vad jag frågar efter? :)

Tack för hjälp!

Medlem sedan mars 20034 471 inlägg
#2

Angående fråga två skulle jag tro att du bör läsa in dina textfiler i en temptabell per ursprunglig tabell och att du sedan får den roliga uppgiften att ta fram ett skript som kollar om dina nyinlästa id-värden stämmer med befintliga, då ska de användas rakt av, och annars stoppar in dem i objektstabeller och så får du hantera en konverteringstabell av gamla och nya id:n att matcha mot när relationerna sätts in.

Generellt måste du också för varje tabell bestämma dig för hur du hanterar:

  1. Uppgifter (PRIMARY KEYS/vad de står för) som finns i måldatabasen men inte i källan - Ska de tas bort?
  2. Uppgifter (PRIMARY KEYS/vad de står för) som finns i källan men inte i måldatabasen - De måste stoppas in (enligt ovan beskrivning), men med nya id:n.
  3. Uppgifter (PRIMARY KEYS/vad de står för) som finns på båda ställena men kanske inte har exakt samma uppgifter överallt i beskrivande kolumner. Vad gör du då?
289 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
155 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
162 ms — ändringar (db)