fix migrations 2

This commit is contained in:
2026-06-10 21:06:03 +03:30
parent 1763a04665
commit 2984ee2576
4 changed files with 68 additions and 10 deletions
+4
View File
@@ -1006,4 +1006,8 @@ CREATE TABLE `withdraws_01/15` (
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- بعد از load schema، Laravel نباید دوباره mysql-schema.sql را اجرا کند
INSERT INTO `migrations` (`migration`, `batch`) VALUES
('0000_00_00_000000_baseline_schema', 1);
SET FOREIGN_KEY_CHECKS = 1;
+23 -7
View File
@@ -1,19 +1,35 @@
-- =============================================================================
-- baseline migrations — فقط برای DB موجود که schema کامل دارد
-- baseline_migrations.sql — حتماً قبل از migrate روی DB موجود اجرا کنید
-- =============================================================================
-- معمولاً لازم نیست! فقط php artisan migrate بزنید.
-- migrationها idempotent هستند — اگر ستون باشد skip می‌شود.
-- اگر جدول migrations خالی باشد، Laravel کل mysql-schema.sql را load می‌کند
-- (DROP TABLE + CREATE) و داده‌های production پاک می‌شود!
--
-- این فایل فقط وقتی لازم است که migrations خالی باشد و نمی‌خواهید
-- Laravel فایل database/schema/mysql-schema.sql را دوباره load کند.
-- workflow DB موجود (abshode_rahimi, groosy, ...):
-- 1) بکاپ
-- 2) SOURCE baseline_migrations.sql
-- 3) php artisan migrate ← فقط ۸ migration incremental
-- 4) SOURCE deploy_settings_const.sql
--
-- USE `نام_دیتابیس`;
-- =============================================================================
TRUNCATE TABLE `migrations`;
-- جلوگیری از load مجدد schema dump
INSERT INTO `migrations` (`migration`, `batch`) VALUES
('0000_00_00_000000_baseline_schema', 1);
-- بعد: php artisan migrate
-- (۸ migration incremental اجرا و ثبت می‌شود)
-- اگر schema از قبل کامل است (همه ستون‌ها هست)، این ۸ تا را هم marked کنید
-- تا migrate فقط migrationهای جدید بعد از deploy را اجرا کند:
INSERT INTO `migrations` (`migration`, `batch`) VALUES
('2026_05_25_163201_add_provider_fields_to_orders_table', 1),
('2026_06_02_000001_add_price_offset_percent_to_products_table', 1),
('2026_06_06_000001_add_total_referrals_to_customers_table', 1),
('2026_06_06_000002_alter_logs_data_to_longtext', 1),
('2026_06_06_000003_add_order_limit_columns_to_products_table', 1),
('2026_06_09_000001_add_show_in_assets_to_products_table', 1),
('2026_06_10_000001_add_use_last_price_if_zero_to_products_table', 1),
('2026_06_10_000002_add_type_column_to_settings_table', 1);
-- اگر ستونی کم است، خطوط بالا (۸ migration) را comment کنید و فقط baseline بماند،
-- بعد php artisan migrate ستون‌های کم را اضافه می‌کند.
+9 -3
View File
@@ -1,9 +1,15 @@
-- =============================================================================
-- deploy_settings_const.sql — آپدیت settings + const (بدون تغییر schema)
--
-- workflow deploy:
-- 1) php artisan migrate
-- 2) mysql -u USER -p DATABASE < database/sql/deploy_settings_const.sql
-- workflow deploy (DB موجود — abshode_rahimi, groosy, ...):
-- 0) بکاپ
-- 1) mysql ... < database/sql/baseline_migrations.sql ← حتماً قبل از migrate
-- 2) php artisan migrate
-- 3) mysql ... < database/sql/deploy_settings_const.sql
--
-- workflow نصب از صفر (DB خالی):
-- 1) php artisan migrate ← schema dump + incremental
-- 2) mysql ... < database/sql/deploy_settings_const.sql
--
-- اصول:
-- • چند بار قابل اجرا (idempotent)
@@ -0,0 +1,32 @@
-- =============================================================================
-- fix_migrations_after_failed_migrate.sql
-- =============================================================================
-- بعد از خطای «Table already exists» روی abshode_rahimi یا سرور مشابه:
--
-- 1) مطمئن شوید پوشه database/migrations فقط ۸ فایل 2026_* دارد
-- (فایل‌های 2014_* و 2019_* و 2023_* create_* باید حذف شده باشند)
--
-- 2) اگر migrate قبلاً schema dump را load کرده و داده‌ها پاک شده:
-- اول بکاپ را restore کنید — این اسکریپت داده برنمی‌گرداند.
--
-- 3) USE دیتابیس; سپس:
-- SOURCE fix_migrations_after_failed_migrate.sql;
--
-- 4) php artisan migrate:status ← باید همه Ran باشند
-- 5) SOURCE deploy_settings_const.sql;
-- =============================================================================
TRUNCATE TABLE `migrations`;
INSERT INTO `migrations` (`migration`, `batch`) VALUES
('0000_00_00_000000_baseline_schema', 1),
('2026_05_25_163201_add_provider_fields_to_orders_table', 1),
('2026_06_02_000001_add_price_offset_percent_to_products_table', 1),
('2026_06_06_000001_add_total_referrals_to_customers_table', 1),
('2026_06_06_000002_alter_logs_data_to_longtext', 1),
('2026_06_06_000003_add_order_limit_columns_to_products_table', 1),
('2026_06_09_000001_add_show_in_assets_to_products_table', 1),
('2026_06_10_000001_add_use_last_price_if_zero_to_products_table', 1),
('2026_06_10_000002_add_type_column_to_settings_table', 1);
SELECT 'migrations fixed — run: php artisan migrate:status' AS info;