DbMigration

This commit is contained in:
Sedat ÖZTÜRK 2026-04-30 13:09:05 +03:00
parent 054a23bc9d
commit 8280a681d1
5 changed files with 41 additions and 15 deletions

View file

@ -3078,6 +3078,12 @@
"en": "An error occurred during database migration.",
"tr": "Veritabanı geçişi sırasında bir hata oluştu."
},
{
"resourceName": "Platform",
"key": "App.DbMigrate.ConfirmMessage",
"en": "Are you sure you want to start database migration? Please make sure you have a backup before proceeding.",
"tr": "Veritabanı geçişini başlatmak istediğinizden emin misiniz? Lütfen devam etmeden önce bir yedekleme yaptığınızdan emin olun."
},
{
"resourceName": "Platform",
"key": "App.ClearRedisCache.Message",

View file

@ -131,14 +131,6 @@ public class ListFormSeeder_Saas : IDataSeedContributor, ITransientDependency
DialogParameters = JsonSerializer.Serialize(new { name = "@Name", id = "@Id" }),
IsVisible = true,
},
new() {
ButtonPosition= UiCommandButtonPositionTypeEnum.Toolbar,
Hint = "ListForms.ListForm.DbMigrate",
Text = "ListForms.ListForm.DbMigrate",
AuthName = listFormName,
OnClick = "UiEvalService.ApiDbMigrate();",
IsVisible = true,
},
}),
InsertServiceAddress = "list-form-dynamic-api/tenant-insert",
UpdateServiceAddress = "list-form-dynamic-api/tenant-update",

View file

@ -57,9 +57,6 @@ platformApiService.interceptors.response.use(
hasTenantHeader &&
responseText.includes('tenant')
console.log('Found', isTenantNotFound)
console.log('Error', error.response?.data?.error?.code)
if (isTenantNotFound && !error.config._tenantRetried) {
store.getActions().locale.setTenantName(undefined)
error.config._tenantRetried = true

View file

@ -434,7 +434,6 @@ export const updateComponentProp = (
);
if (idAttr) {
console.log("🎯 Found component with ID:", componentId);
// Find existing prop or add new one
const existingPropIndex =
element.openingElement.attributes.findIndex(
@ -616,8 +615,6 @@ const cleanupDuplicateImports = (code: string): string => {
const reactImports = code.match(reactImportRegex);
if (reactImports && reactImports.length > 1) {
console.log("🔧 Found duplicate React imports:", reactImports.length);
// Collect all hooks from all imports
const allHooks = new Set<string>();
reactImports.forEach((importLine) => {

View file

@ -1,11 +1,12 @@
import { useState, useCallback, useEffect, useRef } from 'react'
import { Button, Dialog, Notification, toast } from '@/components/ui'
import Container from '@/components/shared/Container'
import ConfirmDialog from '@/components/shared/ConfirmDialog'
import { getDataSources } from '@/services/data-source.service'
import type { DataSourceDto } from '@/proxy/data-source'
import type { SqlQueryExecutionResultDto } from '@/proxy/sql-query-manager/models'
import { sqlObjectManagerService } from '@/services/sql-query-manager.service'
import { FaDatabase, FaPlay, FaFileAlt } from 'react-icons/fa'
import { FaDatabase, FaPlay, FaFileAlt, FaCopy } from 'react-icons/fa'
import { FaCheckCircle } from 'react-icons/fa'
import { useLocalization } from '@/utils/hooks/useLocalization'
import SqlObjectExplorer, { type SqlExplorerSelectedObject } from './SqlObjectExplorer'
@ -16,6 +17,8 @@ import { Splitter } from '@/components/codeLayout/Splitter'
import { Helmet } from 'react-helmet'
import { useStoreState } from '@/store/store'
import { APP_NAME } from '@/constants/app.constant'
import { UiEvalService } from '@/services/UiEvalService'
import { FcAcceptDatabase } from 'react-icons/fc'
interface SqlManagerState {
dataSources: DataSourceDto[]
@ -66,6 +69,7 @@ const SqlQueryManager = () => {
const [selectedExplorerObjects, setSelectedExplorerObjects] = useState<
SqlExplorerSelectedObject[]
>([])
const [showDbMigrateConfirmDialog, setShowDbMigrateConfirmDialog] = useState(false)
const [showCopyDialog, setShowCopyDialog] = useState(false)
const [copyTargetDataSources, setCopyTargetDataSources] = useState<string[]>([])
const [overwriteIfExists, setOverwriteIfExists] = useState(false)
@ -876,12 +880,23 @@ GO`,
</option>
))}
</select>
<Button
size="sm"
variant="default"
icon={<FcAcceptDatabase />}
onClick={() => setShowDbMigrateConfirmDialog(true)}
className="shadow-sm"
title={translate('::App.DbMigrate.StartMessage') || 'Run DB Migration'}
>
{translate('::ListForms.ListForm.DbMigrate') || 'DB Migrate'}
</Button>
</div>
<div className="flex flex-wrap items-center gap-2 sm:gap-3">
<Button
size="sm"
variant="default"
icon={<FaCopy />}
onClick={handleOpenCopyDialog}
disabled={!state.selectedDataSource}
className="shadow-sm"
@ -1018,6 +1033,25 @@ GO`,
</div>
</div>
{/* DB Migrate Confirmation Dialog */}
<ConfirmDialog
isOpen={showDbMigrateConfirmDialog}
type="info"
title={translate('::ListForms.ListForm.DbMigrate') || 'DB Migrate'}
cancelText={translate('::Cancel')}
confirmText={translate('::App.Platform.Execute') || 'Çalıştır'}
onCancel={() => setShowDbMigrateConfirmDialog(false)}
onClose={() => setShowDbMigrateConfirmDialog(false)}
onConfirm={() => {
setShowDbMigrateConfirmDialog(false)
UiEvalService.ApiDbMigrate()
}}
>
<p className="text-gray-600 dark:text-gray-400">
{translate('::App.DbMigrate.ConfirmMessage') || 'Veritabanı migration işlemini başlatmak istediğinize emin misiniz?'}
</p>
</ConfirmDialog>
{/* Template Confirmation Dialog */}
<Dialog
isOpen={showTemplateConfirmDialog}