migration.sql 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. -- CreateEnum
  2. CREATE TYPE "Status" AS ENUM ('ACTIVE', 'INACTIVE');
  3. -- CreateEnum
  4. CREATE TYPE "Sex" AS ENUM ('FEMALE', 'MALE');
  5. -- CreateEnum
  6. CREATE TYPE "MenuType" AS ENUM ('DIRECTORY', 'MENU', 'BUTTON');
  7. -- CreateEnum
  8. CREATE TYPE "Method" AS ENUM ('GET', 'POST', 'PUT', 'PATCH', 'DELETE');
  9. -- CreateTable
  10. CREATE TABLE "Role" (
  11. "id" TEXT NOT NULL,
  12. "name" TEXT NOT NULL,
  13. "code" TEXT NOT NULL,
  14. "description" TEXT,
  15. "sort" INTEGER NOT NULL,
  16. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  17. "updatedAt" TIMESTAMP(3) NOT NULL,
  18. CONSTRAINT "Role_pkey" PRIMARY KEY ("id")
  19. );
  20. -- CreateTable
  21. CREATE TABLE "Menu" (
  22. "id" TEXT NOT NULL,
  23. "title" TEXT NOT NULL,
  24. "type" "MenuType" NOT NULL DEFAULT 'MENU',
  25. "parentId" TEXT,
  26. "name" TEXT,
  27. "path" TEXT,
  28. "component" TEXT,
  29. "meta" JSONB,
  30. "props" JSONB,
  31. "sort" INTEGER NOT NULL,
  32. "permission" TEXT,
  33. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  34. "updatedAt" TIMESTAMP(3) NOT NULL,
  35. CONSTRAINT "Menu_pkey" PRIMARY KEY ("id")
  36. );
  37. -- CreateTable
  38. CREATE TABLE "Permission" (
  39. "id" TEXT NOT NULL,
  40. "roleId" TEXT NOT NULL,
  41. "menuId" TEXT NOT NULL,
  42. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  43. CONSTRAINT "Permission_pkey" PRIMARY KEY ("id")
  44. );
  45. -- CreateTable
  46. CREATE TABLE "Organization" (
  47. "id" TEXT NOT NULL,
  48. "name" TEXT NOT NULL,
  49. "code" TEXT NOT NULL,
  50. "parentId" TEXT,
  51. "sort" INTEGER NOT NULL,
  52. "description" TEXT,
  53. "icon" TEXT,
  54. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  55. "updatedAt" TIMESTAMP(3) NOT NULL,
  56. CONSTRAINT "Organization_pkey" PRIMARY KEY ("id")
  57. );
  58. -- CreateTable
  59. CREATE TABLE "Post" (
  60. "id" TEXT NOT NULL,
  61. "name" TEXT NOT NULL,
  62. "orgId" TEXT NOT NULL,
  63. "parentId" TEXT,
  64. "sort" INTEGER NOT NULL,
  65. "description" TEXT,
  66. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  67. "updatedAt" TIMESTAMP(3) NOT NULL,
  68. CONSTRAINT "Post_pkey" PRIMARY KEY ("id")
  69. );
  70. -- CreateTable
  71. CREATE TABLE "User" (
  72. "id" TEXT NOT NULL,
  73. "userName" TEXT NOT NULL,
  74. "password" TEXT NOT NULL,
  75. "cnName" TEXT NOT NULL,
  76. "email" TEXT NOT NULL,
  77. "phone" TEXT NOT NULL,
  78. "avatar" TEXT NOT NULL,
  79. "sex" "Sex" NOT NULL DEFAULT 'FEMALE',
  80. "status" "Status" NOT NULL DEFAULT 'ACTIVE',
  81. "sort" INTEGER NOT NULL,
  82. "token" TEXT,
  83. "tags" TEXT[] DEFAULT ARRAY[]::TEXT[],
  84. "city" TEXT[] DEFAULT ARRAY[]::TEXT[],
  85. "address" TEXT,
  86. "roleId" TEXT NOT NULL,
  87. "orgId" TEXT NOT NULL,
  88. "postId" TEXT NOT NULL,
  89. "loginCount" INTEGER NOT NULL DEFAULT 0,
  90. "lastIp" TEXT,
  91. "lastLoginAt" TIMESTAMP(3),
  92. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  93. "updatedAt" TIMESTAMP(3) NOT NULL,
  94. CONSTRAINT "User_pkey" PRIMARY KEY ("id")
  95. );
  96. -- CreateTable
  97. CREATE TABLE "Log" (
  98. "id" TEXT NOT NULL,
  99. "userId" TEXT NOT NULL,
  100. "ip" TEXT NOT NULL,
  101. "action" TEXT NOT NULL,
  102. "method" "Method" NOT NULL,
  103. "params" JSONB NOT NULL,
  104. "os" TEXT NOT NULL,
  105. "browser" TEXT NOT NULL,
  106. "province" TEXT,
  107. "city" TEXT,
  108. "adcode" TEXT,
  109. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  110. CONSTRAINT "Log_pkey" PRIMARY KEY ("id")
  111. );
  112. -- CreateTable
  113. CREATE TABLE "Message" (
  114. "id" TEXT NOT NULL,
  115. "title" TEXT NOT NULL,
  116. "content" TEXT NOT NULL,
  117. "status" "Status" NOT NULL DEFAULT 'ACTIVE',
  118. "pinned" BOOLEAN NOT NULL DEFAULT false,
  119. "userId" TEXT NOT NULL,
  120. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  121. "updatedAt" TIMESTAMP(3) NOT NULL,
  122. CONSTRAINT "Message_pkey" PRIMARY KEY ("id")
  123. );
  124. -- CreateTable
  125. CREATE TABLE "MessageRead" (
  126. "id" TEXT NOT NULL,
  127. "messageId" TEXT NOT NULL,
  128. "userId" TEXT NOT NULL,
  129. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  130. CONSTRAINT "MessageRead_pkey" PRIMARY KEY ("id")
  131. );
  132. -- CreateTable
  133. CREATE TABLE "Internalization" (
  134. "id" TEXT NOT NULL,
  135. "name" TEXT NOT NULL,
  136. "parentId" TEXT,
  137. "zhCN" TEXT,
  138. "enUS" TEXT,
  139. "jaJP" TEXT,
  140. "zhTW" TEXT,
  141. "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  142. "updatedAt" TIMESTAMP(3) NOT NULL,
  143. CONSTRAINT "Internalization_pkey" PRIMARY KEY ("id")
  144. );
  145. -- CreateIndex
  146. CREATE UNIQUE INDEX "Role_name_key" ON "Role"("name");
  147. -- CreateIndex
  148. CREATE UNIQUE INDEX "Role_code_key" ON "Role"("code");
  149. -- CreateIndex
  150. CREATE UNIQUE INDEX "Menu_name_key" ON "Menu"("name");
  151. -- CreateIndex
  152. CREATE UNIQUE INDEX "Menu_path_key" ON "Menu"("path");
  153. -- CreateIndex
  154. CREATE UNIQUE INDEX "Menu_permission_key" ON "Menu"("permission");
  155. -- CreateIndex
  156. CREATE UNIQUE INDEX "Organization_name_key" ON "Organization"("name");
  157. -- CreateIndex
  158. CREATE UNIQUE INDEX "Organization_code_key" ON "Organization"("code");
  159. -- CreateIndex
  160. CREATE UNIQUE INDEX "Post_name_key" ON "Post"("name");
  161. -- CreateIndex
  162. CREATE UNIQUE INDEX "User_userName_key" ON "User"("userName");
  163. -- CreateIndex
  164. CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
  165. -- CreateIndex
  166. CREATE UNIQUE INDEX "User_phone_key" ON "User"("phone");
  167. -- AddForeignKey
  168. ALTER TABLE "Menu" ADD CONSTRAINT "Menu_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Menu"("id") ON DELETE SET NULL ON UPDATE CASCADE;
  169. -- AddForeignKey
  170. ALTER TABLE "Permission" ADD CONSTRAINT "Permission_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  171. -- AddForeignKey
  172. ALTER TABLE "Permission" ADD CONSTRAINT "Permission_menuId_fkey" FOREIGN KEY ("menuId") REFERENCES "Menu"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  173. -- AddForeignKey
  174. ALTER TABLE "Organization" ADD CONSTRAINT "Organization_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Organization"("id") ON DELETE SET NULL ON UPDATE CASCADE;
  175. -- AddForeignKey
  176. ALTER TABLE "Post" ADD CONSTRAINT "Post_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "Organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  177. -- AddForeignKey
  178. ALTER TABLE "Post" ADD CONSTRAINT "Post_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Post"("id") ON DELETE SET NULL ON UPDATE CASCADE;
  179. -- AddForeignKey
  180. ALTER TABLE "User" ADD CONSTRAINT "User_roleId_fkey" FOREIGN KEY ("roleId") REFERENCES "Role"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  181. -- AddForeignKey
  182. ALTER TABLE "User" ADD CONSTRAINT "User_orgId_fkey" FOREIGN KEY ("orgId") REFERENCES "Organization"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  183. -- AddForeignKey
  184. ALTER TABLE "User" ADD CONSTRAINT "User_postId_fkey" FOREIGN KEY ("postId") REFERENCES "Post"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  185. -- AddForeignKey
  186. ALTER TABLE "Log" ADD CONSTRAINT "Log_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  187. -- AddForeignKey
  188. ALTER TABLE "Message" ADD CONSTRAINT "Message_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  189. -- AddForeignKey
  190. ALTER TABLE "MessageRead" ADD CONSTRAINT "MessageRead_messageId_fkey" FOREIGN KEY ("messageId") REFERENCES "Message"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  191. -- AddForeignKey
  192. ALTER TABLE "MessageRead" ADD CONSTRAINT "MessageRead_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
  193. -- AddForeignKey
  194. ALTER TABLE "Internalization" ADD CONSTRAINT "Internalization_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "Internalization"("id") ON DELETE SET NULL ON UPDATE CASCADE;