Commit graph

274 commits

Author SHA1 Message Date
Ankush Menat
9b84264fa5
fix: Don't bother resolving installed app (#36610)
If only app name is specified and it already exists on bench, don't
bother resolving using github APIs which can be flaky sometimes.
2026-02-03 05:50:53 +00:00
Raffael Meyer
ea4cdf68f4
feat: warn on multiple class overrides (#34169) 2025-10-25 14:38:31 +02:00
Diptanil Saha
395af8aa04
fix: clear doc_events_hooks cache during uninstallation of app (#34321)
* fix: clear doc_events_hooks cache during uninstallation of app

* refactor: somewhat cleaner None check

---------

Co-authored-by: Ankush Menat <ankush@frappe.io>
2025-10-13 10:30:35 +00:00
Ankush Menat
cb7c10e2bd
fix: Commit changes to installed apps (#33550) 2025-08-06 12:12:29 +05:30
Ankush Menat
2bb49d0cf4
fix: clear all cache after uninstalling apps (#33513) 2025-08-05 06:30:07 +00:00
Akhil Narang
325c881dc4
Merge pull request #33262 from akhilnarang/fix-reinstall-lock
feat: delete existing site locks when setting up site directories
2025-07-10 11:10:23 +05:30
Ankush Menat
2118ad737c
fix: Delete single doctypes from DB when uninstalling app (#33180)
This is different from dropping code and collecting orpahn doctype.

This is consistent with current behaviour:
- orphaned - drop metadata, keep data.
- uninstall - drop metadata and data.

Co-authored-by: Ritvik Sardana <ritvik.sardana11@gmail.com>
2025-07-01 13:17:12 +00:00
Ankush Menat
3167e03133 fix: invalidate persistent caches 2025-06-11 00:28:38 +05:30
Ankush Menat
0476c73ab7
fix: patch failure due to out of sync installed apps (#32767)
* fix: Avoid patching uninstalled app

* fix: Sync uninstalled apps in Installed Apps doctype
2025-06-04 05:53:20 +00:00
rohitwaghchaure
5c6b2b5bec
refactor: track completed app setup wizards and re-run the setup wizard upon new app installation. (#32640) 2025-06-03 12:36:22 +05:30
Akhil Narang
368d7ae298
fix(installer): don't allow partial-restore for sqlite
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:16 +05:30
Akhil Narang
0b5e245507
feat: init sqlite
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2025-04-15 13:59:16 +05:30
Ankush Menat
766cb64d55
perf!: Cache site configs in memory for 60 seconds (#28869)
This is middle ground between caching it completely and requiring a
restart/signal to reload vs always reloading it.

I don't know any use cases that can break from this, nowhere in code
configs should be expected to reload instantly.

This change is only applied to requests for now
2024-12-27 16:21:14 +00:00
Akhil Narang
5e1146e216
fix(installer): don't set defaults for frappe.flags.root_username
Its set anyway when calling `setup_database()` (inside `get_root_connection()`)

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-12-02 13:32:06 +05:30
David
d87b786687
chore: fix all invocation of init for singledispatch -> min 1 positional arg 2024-09-13 11:53:52 +02:00
Corentin Flr
f0c7de39dc
chore(new_site): Avoid iterating None 2024-04-29 13:41:00 +02:00
King Phyte
05766680f7
fix: restoring site breaks when checking backup version (#26186)
* fix: restoring site breaks when checking backup version

The `backup_version` variable exists if and only if the `if match` branch executes, but it is used in a condition in a scope where it may not exist. Changing the variable to `match` leads to correct behaviour.

* fix: restoring site breaks when checking backup version

Co-authored-by: Akhil Narang <me@akhilnarang.dev>

* fix: version check when restoring site should be done from `match` scope

* chore: add a `return None` for better readability

No functional difference, just easier to understand/read the code.

Signed-off-by: Akhil Narang <me@akhilnarang.dev>

---------

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
Co-authored-by: Akhil Narang <me@akhilnarang.dev>
2024-04-29 16:34:29 +05:30
Akhil Narang
0d3b2499fc
fix: don't use frappe.flags for mariadb_user_host_login_scope
This gets reset whenever we call `frappe.init()` again

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 16:57:04 +05:30
David
39d4318a27
feat: enable db socket connection 2024-03-29 10:29:50 +01:00
David
6eb1607c0a
refactor: name and explain user host login scope flag for mariadb 2024-03-29 10:26:49 +01:00
Akhil Narang
197b1ab77c
refactor(installer): use frappe.generate_hash() to generate database name
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:12:19 +05:30
Akhil Narang
1847e9cae8
fix: pass function as lambda
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
9940868063
fix: switch to datetime.now() instead of our get_datetime()
`get_datetime()` will query the DB to get the system timezone, not something we currently have.

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
4b2fde1d8f
fix: check if rollback callback is defined
Don't raise exceptions where a simple print() will suffice
Print exception before prompting for rollback

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
147c0c8b37
feat: initial failed site rollback implementation
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
46981622ec
feat: generate a non-deterministic database name every time - include current date in the hash
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
1ffc4c7834
chore: update output to let the user know they can pass --force
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
8cd23ecef5
chore: drop unused parameter
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-29 12:00:25 +05:30
Akhil Narang
4a43d68e52
fix: update downgrade warning
Seemed a bit confusing, https://github.com/frappe/frappe/pull/24898#discussion_r1521076386

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-13 11:36:00 +05:30
Akhil Narang
0576a085d7
fix(uninstall): don't allow uninstalling an app if we have other apps dependent on it
Support ticket 10929 / Sentry FRAPPE-3T8

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-03-06 13:50:00 +05:30
Akhil Narang
3f1e19de85
refactor(treewide): enable RUF rules
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-02-21 16:20:28 +05:30
barredterra
72dca18c9e docs: imporve docstrings 2024-02-15 11:54:14 +01:00
barredterra
ee67b46d4e refactor: get_(old)_backup_version methods 2024-02-15 11:54:03 +01:00
barredterra
ed597693bb refactor: better variable name 2024-02-15 11:31:06 +01:00
barredterra
76a830574d fix: wrong operator in version check 2024-02-15 11:30:33 +01:00
Akhil Narang
26ae0f3460
fix: ruff fixes
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-02-07 17:04:31 +05:30
Ankush Menat
de9ac89748 style: re-format with ruff 2024-02-05 18:53:33 +05:30
David Arnold
c57bc94ead
chore: cleanup frappe.connect invocations 2024-01-24 11:56:24 +01:00
David Arnold
94378b6566
chore: simplify frappe.connect and use site config for bootstrapping 2024-01-19 13:49:36 +01:00
Akhil Narang
d1906b3c16
refactor: add in a fallback to use db name as db user name
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-16 12:35:01 +05:30
Akhil Narang
c721fcf8c4
refactor: allow setting a db user name different from the database name
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-16 12:35:01 +05:30
Akhil Narang
b9923571dc
fix: check correct part of backup header
`-- Backup generated by Frappe 15.1.0 on branch fix-backup-restore`

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2024-01-08 13:06:59 +05:30
Akhil Narang
43021911ff
fix: simplify parsing version for older backups
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:09:08 +05:30
Akhil Narang
b010dc584f
chore(installer): fix output when prompting user about downgrade
Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:09:08 +05:30
Akhil Narang
998f2c10d6
fix: handle older gzipped backups as well
Also fix the actual comparison

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:09:08 +05:30
Akhil Narang
2e382040cd
fix: simplify version detection logic
Our version detection code is relatively simple, so we shouldn't have any exceptions arising there
Just check for a None return value to decide whether we should use the older logic

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:09:08 +05:30
Akhil Narang
7db8baa7c4
feat(installer): drop actual gzip file extraction
Use `zgrep` to check for table name match where required

Also use a table that's at the top of the dump files (`__Auth`)

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:09:07 +05:30
Akhil Narang
3b0f6de883
perf: don't extract backup files unless required
Read from the gzipped file wherever possible

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-12-26 11:08:48 +05:30
Hussain Nagaria
8d2137c265 docs: consistent doc strings 2023-12-18 18:27:39 +05:30
barredterra
c35476256f refactor: simplify conditional logic
Command: `sourcery review --fix --enable de-morgan .`
2023-12-05 11:14:41 +01:00